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