aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/snic/snic_fwint.h
diff options
context:
space:
mode:
authorNarsimhulu Musini <nmusini@cisco.com>2016-03-17 03:51:14 -0400
committerMartin K. Petersen <martin.petersen@oracle.com>2016-04-11 16:57:09 -0400
commitc9747821f9bbff6c07fa36087b003d89d05245c8 (patch)
treee471ac763c1793a5fd14e80617fdfe4dad91f695 /drivers/scsi/snic/snic_fwint.h
parent58fcf92050cdf7b499ba6169459ec43aa0838662 (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.h4
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