diff options
author | Narsimhulu Musini <nmusini@cisco.com> | 2016-03-17 10:51:14 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2016-04-11 23:57:09 +0300 |
commit | c9747821f9bbff6c07fa36087b003d89d05245c8 (patch) | |
tree | e471ac763c1793a5fd14e80617fdfe4dad91f695 /drivers/scsi/snic/snic_fwint.h | |
parent | 58fcf92050cdf7b499ba6169459ec43aa0838662 (diff) | |
download | linux-c9747821f9bbff6c07fa36087b003d89d05245c8.tar.xz |
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 { /* Payload 88 bytes = 128 - 24 - 16 */ #define SNIC_HOST_REQ_PAYLOAD ((int)(SNIC_HOST_REQ_LEN - \ sizeof(struct snic_io_hdr) - \ - (2 * sizeof(u64)))) + (2 * sizeof(u64)) - sizeof(ulong))) /* * snic_host_req: host -> firmware request @@ -448,6 +448,8 @@ struct snic_host_req { /* hba reset */ struct snic_hba_reset reset; } u; + + ulong req_pa; }; /* end of snic_host_req structure */ |