ioat2,3: report all uncorrectable errors
Modify is_ioat_bug() to catch all errors that are uncorrectable, or not currently handled. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
de581b65f6
commit
b57014def9
@ -297,9 +297,7 @@ static inline bool is_ioat_suspended(unsigned long status)
|
|||||||
/* channel was fatally programmed */
|
/* channel was fatally programmed */
|
||||||
static inline bool is_ioat_bug(unsigned long err)
|
static inline bool is_ioat_bug(unsigned long err)
|
||||||
{
|
{
|
||||||
return !!(err & (IOAT_CHANERR_SRC_ADDR_ERR|IOAT_CHANERR_DEST_ADDR_ERR|
|
return !!err;
|
||||||
IOAT_CHANERR_NEXT_ADDR_ERR|IOAT_CHANERR_CONTROL_ERR|
|
|
||||||
IOAT_CHANERR_LENGTH_ERR));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ioat_unmap(struct pci_dev *pdev, dma_addr_t addr, size_t len,
|
static inline void ioat_unmap(struct pci_dev *pdev, dma_addr_t addr, size_t len,
|
||||||
|
@ -279,6 +279,8 @@ void ioat2_timer_event(unsigned long data)
|
|||||||
u32 chanerr;
|
u32 chanerr;
|
||||||
|
|
||||||
chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET);
|
chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET);
|
||||||
|
dev_err(to_dev(chan), "%s: Channel halted (%x)\n",
|
||||||
|
__func__, chanerr);
|
||||||
BUG_ON(is_ioat_bug(chanerr));
|
BUG_ON(is_ioat_bug(chanerr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -378,6 +378,8 @@ static void ioat3_timer_event(unsigned long data)
|
|||||||
u32 chanerr;
|
u32 chanerr;
|
||||||
|
|
||||||
chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET);
|
chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET);
|
||||||
|
dev_err(to_dev(chan), "%s: Channel halted (%x)\n",
|
||||||
|
__func__, chanerr);
|
||||||
BUG_ON(is_ioat_bug(chanerr));
|
BUG_ON(is_ioat_bug(chanerr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user