aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorRaghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>2016-04-26 02:32:26 -0400
committerMartin K. Petersen <martin.petersen@oracle.com>2016-04-29 19:08:24 -0400
commiteef76f16295d34d7fab6994b82dda60ce002f91d (patch)
treebcff45d9ae7894f217fdb45fc9d147598e9cb2e0 /drivers/scsi
parent9cb62fa24e0d22dbe991c315d6c454a341ea3f76 (diff)
aacraid: Remove code to needlessly complete fib
Currently driver completes double completed or spurious interrupted fibs. This is not necessary and causes the SCSI mid layer to issue aborts and resets, since completing a fib prematurely might trigger a race condition resulting in the driver not calling the scsi_done callback. Fixed by removing the call to fib complete. Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/aacraid/dpcsup.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/scsi/aacraid/dpcsup.c b/drivers/scsi/aacraid/dpcsup.c
index d677b52860ae..7e836205aef1 100644
--- a/drivers/scsi/aacraid/dpcsup.c
+++ b/drivers/scsi/aacraid/dpcsup.c
@@ -392,9 +392,10 @@ unsigned int aac_intr_normal(struct aac_dev *dev, u32 index,
392 if (likely(fib->callback && fib->callback_data)) { 392 if (likely(fib->callback && fib->callback_data)) {
393 fib->flags &= FIB_CONTEXT_FLAG_FASTRESP; 393 fib->flags &= FIB_CONTEXT_FLAG_FASTRESP;
394 fib->callback(fib->callback_data, fib); 394 fib->callback(fib->callback_data, fib);
395 } else { 395 } else
396 aac_fib_complete(fib); 396 dev_info(&dev->pdev->dev,
397 } 397 "Invalid callback_fib[%d] (*%p)(%p)\n",
398 index, fib->callback, fib->callback_data);
398 } else { 399 } else {
399 unsigned long flagv; 400 unsigned long flagv;
400 dprintk((KERN_INFO "event_wait up\n")); 401 dprintk((KERN_INFO "event_wait up\n"));