I/OAT: fail self-test if callback test reaches timeout
If we miss interrupts in the self test then fail registration of this channel as it is unsuitable for use as a public channel. Signed-off-by: Maciej Sosnowski <maciej.sosnowski@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Родитель
211a22ce08
Коммит
0c33e1ca3d
|
@ -1363,6 +1363,7 @@ static int ioat_dma_self_test(struct ioatdma_device *device)
|
|||
dma_cookie_t cookie;
|
||||
int err = 0;
|
||||
struct completion cmp;
|
||||
unsigned long tmo;
|
||||
|
||||
src = kzalloc(sizeof(u8) * IOAT_TEST_SIZE, GFP_KERNEL);
|
||||
if (!src)
|
||||
|
@ -1414,9 +1415,10 @@ static int ioat_dma_self_test(struct ioatdma_device *device)
|
|||
}
|
||||
device->common.device_issue_pending(dma_chan);
|
||||
|
||||
wait_for_completion_timeout(&cmp, msecs_to_jiffies(3000));
|
||||
tmo = wait_for_completion_timeout(&cmp, msecs_to_jiffies(3000));
|
||||
|
||||
if (device->common.device_is_tx_complete(dma_chan, cookie, NULL, NULL)
|
||||
if (tmo == 0 ||
|
||||
device->common.device_is_tx_complete(dma_chan, cookie, NULL, NULL)
|
||||
!= DMA_SUCCESS) {
|
||||
dev_err(&device->pdev->dev,
|
||||
"Self-test copy timed out, disabling\n");
|
||||
|
|
Загрузка…
Ссылка в новой задаче