diff options
author | Narsimhulu Musini <nmusini@cisco.com> | 2016-03-17 03:51:14 -0400 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2016-04-11 16:57:09 -0400 |
commit | c9747821f9bbff6c07fa36087b003d89d05245c8 (patch) | |
tree | e471ac763c1793a5fd14e80617fdfe4dad91f695 /drivers/scsi/snic/snic_fwint.h | |
parent | 58fcf92050cdf7b499ba6169459ec43aa0838662 (diff) |
snic: Fix for missing interrupts
- On posting an IO to the firmware, adapter generates an interrupt.
Due to hardware issues, sometimes the adapter fails to generate
the interrupt. This behavior skips updating transmit queue-
counters, which in turn causes the queue full condition. The fix
addresses the queue full condition.
- The fix also reserves a slot in transmit queue for hba reset.
when queue full is observed during IO, there will always be room
to post hba reset command.
Signed-off-by: Narsimhulu Musini <nmusini@cisco.com>
Signed-off-by: Sesidhar Baddela <sebaddel@cisco.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/snic/snic_fwint.h')
-rw-r--r-- | drivers/scsi/snic/snic_fwint.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/snic/snic_fwint.h b/drivers/scsi/snic/snic_fwint.h index 2cfaf2dc915f..c5f9e1917a8e 100644 --- a/drivers/scsi/snic/snic_fwint.h +++ b/drivers/scsi/snic/snic_fwint.h | |||
@@ -414,7 +414,7 @@ enum snic_ev_type { | |||
414 | /* Payload 88 bytes = 128 - 24 - 16 */ | 414 | /* Payload 88 bytes = 128 - 24 - 16 */ |
415 | #define SNIC_HOST_REQ_PAYLOAD ((int)(SNIC_HOST_REQ_LEN - \ | 415 | #define SNIC_HOST_REQ_PAYLOAD ((int)(SNIC_HOST_REQ_LEN - \ |
416 | sizeof(struct snic_io_hdr) - \ | 416 | sizeof(struct snic_io_hdr) - \ |
417 | (2 * sizeof(u64)))) | 417 | (2 * sizeof(u64)) - sizeof(ulong))) |
418 | 418 | ||
419 | /* | 419 | /* |
420 | * snic_host_req: host -> firmware request | 420 | * snic_host_req: host -> firmware request |
@@ -448,6 +448,8 @@ struct snic_host_req { | |||
448 | /* hba reset */ | 448 | /* hba reset */ |
449 | struct snic_hba_reset reset; | 449 | struct snic_hba_reset reset; |
450 | } u; | 450 | } u; |
451 | |||
452 | ulong req_pa; | ||
451 | }; /* end of snic_host_req structure */ | 453 | }; /* end of snic_host_req structure */ |
452 | 454 | ||
453 | 455 | ||