linux/drivers/scsi
Sumit.Saxena@avagotech.com db4fc864ae megaraid_sas : Update threshold based reply post host index register
Resending the patch. Addressed the review comments from Tomas Henzl.

Current driver updates reply post host index to let firmware know that replies are processed,
while returning from ISR function, only if there is no oustanding replies in reply queue.

Driver will free the request frame immediately from ISR but reply post host index is not yet updated.
It means freed request can be used by submission path and there may be a tight loop in request/reply
path. In such condition, firmware may crash when it tries to post reply and there is no free
reply post descriptor.

Eventually two things needs to be change to avoid this issue.

Increase reply queue depth (double than request queue) to accommodate worst case scenario.
Update reply post host index to firmware once it reach to some pre-defined threshold value.

This change will make sure that firmware will always have some buffer of reply descriptor and
will never find empty reply descriptor in completion path.

Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com>
Signed-off-by: Kashyap Desai <kashyap.desai@avagotech.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2014-09-16 09:14:23 -07:00
..
aacraid scsi: add use_cmd_list flag 2014-09-15 16:01:58 -07:00
aic7xxx aic7xxx: Use kstrdup 2014-07-25 17:16:54 -04:00
aic94xx [SCSI] libsas: implement > 16 byte CDB support 2013-06-04 11:15:59 -07:00
arcmsr scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
arm scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
be2iscsi be2iscsi: Use pci_enable_msix_range() 2014-09-16 09:09:55 -07:00
bfa bfa: Use pci_enable_msix_exact() instead of pci_enable_msix() 2014-07-29 08:38:52 -04:00
bnx2fc bnx2fc: fix incorrect DMA memory mapping in bnx2fc_unmap_sg_list() 2014-09-16 09:10:14 -07:00
bnx2i bnx2i: Make boot_nic entry visible in the sysfs session objects 2014-09-16 09:14:12 -07:00
csiostor csiostor: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-09-16 09:09:56 -07:00
cxgbi scsi: fix decimal printf format specifiers prefixed with 0x 2014-09-16 09:09:45 -07:00
device_handler block: add blk_rq_set_block_pc() 2014-06-06 07:57:37 -06:00
dpt
esas2r esas2r: Fix comment 2014-05-19 19:12:23 +02:00
fcoe Merge branch 'sched/urgent' into sched/core, to avoid conflicts 2014-05-07 13:15:46 +02:00
fnic fnic: assign FIP_ALL_FCF_MACS to fcoe_all_fcfs 2014-09-16 09:10:02 -07:00
ibmvscsi ibmvfc: fix little endian issues 2014-07-25 17:16:55 -04:00
isci PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
libfc fcp: Do not interpret check condition as underrun 2013-09-04 13:52:35 -07:00
libsas scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
lpfc lpfc: update lpfc version to driver version 10.4.8000.0 2014-09-16 09:10:14 -07:00
megaraid megaraid_sas : Update threshold based reply post host index register 2014-09-16 09:14:23 -07:00
mpt2sas mpt3sas, mpt2sas: fix scsi_add_host error handling problems in _scsih_probe 2014-09-16 09:14:21 -07:00
mpt3sas mpt3sas, mpt2sas: fix scsi_add_host error handling problems in _scsih_probe 2014-09-16 09:14:21 -07:00
mvsas Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-08-06 21:03:53 -07:00
osd block: add blk_rq_set_block_pc() 2014-06-06 07:57:37 -06:00
pcmcia scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
pm8001 pm8001: Update nvmd response data to request buffer 2014-09-16 09:09:48 -07:00
qla2xxx qla2xxx: Prevent probe and board_disable race 2014-09-16 09:10:01 -07:00
qla4xxx qla4xxx: fix get_host_stats error propagation 2014-08-01 08:16:39 -04:00
sym53c8xx_2 scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
ufs PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
.gitignore
3w-9xxx.c [SCSI] Disable WRITE SAME for RAID and virtual host adapter drivers 2013-11-29 08:48:39 +04:00
3w-9xxx.h
3w-sas.c scsi: use pci_zalloc_consistent 2014-08-08 15:57:29 -07:00
3w-sas.h
3w-xxxx.c [SCSI] Disable WRITE SAME for RAID and virtual host adapter drivers 2013-11-29 08:48:39 +04:00
3w-xxxx.h 3w-xxxx: fix mis-aligned struct accesses 2014-07-25 17:16:56 -04:00
53c700_d.h_shipped
53c700.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
53c700.h
53c700.scr
a100u2w.c scsi: use pci_zalloc_consistent 2014-08-08 15:57:29 -07:00
a100u2w.h
a2091.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
a2091.h
a3000.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
a3000.h
a4000t.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
advansys.c scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
aha152x.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
aha152x.h
aha1542.c
aha1542.h
aha1740.c aha1740: switch to ->show_info() 2013-04-09 14:13:23 -04:00
aha1740.h
atari_NCR5380.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
atari_scsi.c SCSI for-linus on 20140609 2014-06-09 18:54:06 -07:00
atari_scsi.h scsi/NCR5380: remove unused macro definitions 2014-05-28 12:11:08 +02:00
atp870u.c SCSI: remove unnecessary pci_set_drvdata() 2013-10-14 15:26:04 +02:00
atp870u.h
BusLogic.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
BusLogic.h [SCSI] BusLogic: Port driver to 64-bit. 2013-06-26 18:32:47 -07:00
bvme6000_scsi.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
ch.c scsi: Implement ch_printk() 2014-07-17 22:07:40 +02:00
constants.c [SCSI] scsi constants: command, sense key + additional sense strings 2013-07-09 22:52:29 +01:00
dc395x.c scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
dc395x.h
dmx3191d.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
dpt_i2o.c scsi: add use_cmd_list flag 2014-09-15 16:01:58 -07:00
dpti.h scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
dtc.c scsi/NCR5380: fix and standardize NDEBUG macros 2014-05-28 12:10:43 +02:00
dtc.h NCR5830: switch to ->show_info() 2013-04-09 14:13:17 -04:00
eata_generic.h
eata_pio.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
eata_pio.h
eata.c eata: remove driver_lock 2014-09-16 09:09:38 -07:00
esp_scsi.c esp_scsi: Fix tag state corruption when autosensing. 2013-08-01 18:08:34 -07:00
esp_scsi.h esp_scsi: Fix tag state corruption when autosensing. 2013-08-01 18:08:34 -07:00
fdomain.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
fdomain.h
FlashPoint.c [SCSI] BusLogic: Port driver to 64-bit. 2013-06-26 18:32:47 -07:00
g_NCR5380_mmio.c
g_NCR5380.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
g_NCR5380.h scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
gdth_ioctl.h
gdth_proc.c gdth: switch to ->show_info() 2013-04-09 14:13:16 -04:00
gdth_proc.h gdth: switch to ->show_info() 2013-04-09 14:13:16 -04:00
gdth.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
gdth.h gdth: switch to ->show_info() 2013-04-09 14:13:16 -04:00
gvp11.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
gvp11.h
hosts.c scsi: add support for a blk-mq based I/O path. 2014-07-25 17:16:28 -04:00
hpsa_cmd.h hpsa: fix handling of hpsa_volume_offline return value 2014-06-02 09:55:02 +02:00
hpsa.c hpsa: refine the pci enable/disable handling 2014-09-16 09:09:49 -07:00
hpsa.h hpsa: fix event filtering to prevent excessive rescans with old firmware 2014-06-02 09:54:59 +02:00
hptiop.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
hptiop.h [SCSI] hptiop: Support HighPoint RR4520/RR4522 HBA 2012-11-27 08:59:43 +04:00
imm.c imm: switch to ->show_info() 2013-04-09 14:13:16 -04:00
imm.h
in2000.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
in2000.h
initio.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
initio.h
ipr.c Merge branch 'for-3.15/core' of git://git.kernel.dk/linux-block 2014-04-01 19:19:15 -07:00
ipr.h [SCSI] ipr: Add new CCIN definition for Grand Canyon support 2014-03-19 15:04:42 -07:00
ips.c [SCSI] Disable WRITE SAME for RAID and virtual host adapter drivers 2013-11-29 08:48:39 +04:00
ips.h ips: switch to ->show_info() 2013-04-09 14:13:27 -04:00
iscsi_boot_sysfs.c [SCSI] iscsi_boot_sysfs: Fix a memory leak in iscsi_boot_destroy_kset() 2014-03-15 10:19:19 -07:00
iscsi_tcp.c net: Split sk_no_check into sk_no_check_{rx,tx} 2014-05-23 16:28:53 -04:00
iscsi_tcp.h net: Fix use after free by removing length arg from sk_data_ready callbacks. 2014-04-11 16:15:36 -04:00
jazz_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
Kconfig advansys: don't build ARM 2014-07-25 17:16:55 -04:00
lasi700.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
libiscsi_tcp.c [SCSI] libiscsi: Reduce locking contention in fast path 2014-03-15 10:19:18 -07:00
libiscsi.c libiscsi: fix potential buffer overrun in __iscsi_conn_send_pdu 2014-09-15 14:11:20 -07:00
mac53c94.c
mac53c94.h
mac_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mac_scsi.c scsi/NCR5380: fix and standardize NDEBUG macros 2014-05-28 12:10:43 +02:00
mac_scsi.h scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
Makefile tgt: removal 2014-07-17 22:07:44 +02:00
megaraid.c scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
megaraid.h [SCSI] megaraid: simplify internal command handling 2014-03-27 08:26:31 -07:00
mesh.c scsi: use pci_zalloc_consistent 2014-08-08 15:57:29 -07:00
mesh.h
mvme16x_scsi.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mvme147.c switch wd33c93 to ->show_info() 2013-04-09 14:13:15 -04:00
mvme147.h
mvumi.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
mvumi.h [SCSI] mvumi: Use PCI_VENDOR_ID_MARVELL_EXT for 0x1b4b 2013-04-15 14:30:44 -06:00
ncr53c8xx.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
ncr53c8xx.h scsi: Remove CONFIG_SCSI_MULTI_LUN 2014-07-17 22:07:35 +02:00
NCR53c406a.c NCR53c406a: don't call free_dma() by default 2014-07-25 17:16:56 -04:00
NCR5380.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
NCR5380.h scsi/NCR5380: dprintk macro 2014-05-28 18:14:16 +02:00
NCR_D700.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
NCR_D700.h
NCR_Q720.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
NCR_Q720.h
nsp32_debug.c
nsp32_io.h
nsp32.c scsi: fix decimal printf format specifiers prefixed with 0x 2014-09-16 09:09:45 -07:00
nsp32.h
osst_detect.h
osst_options.h
osst.c block: add blk_rq_set_block_pc() 2014-06-06 07:57:37 -06:00
osst.h
pas16.c pas16: don't call free_dma() 2014-07-25 17:16:55 -04:00
pas16.h scsi/NCR5380: remove redundant HOSTS_C macro tests 2014-05-28 12:05:36 +02:00
pmcraid.c pmcraid: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-09-16 09:09:57 -07:00
pmcraid.h
ppa.c ppa: switch to ->show_info() 2013-04-09 14:13:17 -04:00
ppa.h
ps3rom.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
qla1280.c x86, platforms: Remove SGI Visual Workstation 2014-02-27 08:07:39 -08:00
qla1280.h
qlogicfas408.c
qlogicfas408.h
qlogicfas.c qlogicfas: don't call free_dma() 2014-07-25 17:16:55 -04:00
qlogicpti.c scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi_debug.c scsi_debug: bump inquiry version to SPC-4, update version descriptors 2014-09-16 09:09:51 -07:00
scsi_devinfo.c scsi: do not issue SCSI RSOC command to Promise Vtrak E610f 2014-07-29 18:01:10 -04:00
scsi_error.c scsi: fix various kernel-doc problems in scsi_error.c 2014-09-15 16:01:57 -07:00
scsi_ioctl.c scsi: use dev_printk() variants for ioctl 2014-07-17 22:07:41 +02:00
scsi_lib_dma.c
scsi_lib.c scsi: add use_cmd_list flag 2014-09-15 16:01:58 -07:00
scsi_logging.h
scsi_module.c
scsi_netlink.c net: Use netlink_ns_capable to verify the permisions of netlink messages 2014-04-24 13:44:54 -04:00
scsi_pm.c scsi: async sd resume 2014-04-10 15:30:35 -07:00
scsi_priv.h scsi: add support for a blk-mq based I/O path. 2014-07-25 17:16:28 -04:00
scsi_proc.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_sas_internal.h
scsi_scan.c scsi: don't store LUN bits in CDB[1] for USB mass-storage devices 2014-09-15 16:01:58 -07:00
scsi_sysctl.c scsi: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
scsi_sysfs.c scsi: balance out autopm get/put calls in scsi_sysfs_add_sdev() 2014-09-15 16:02:05 -07:00
scsi_trace.c tracing: Add trace_seq_buffer_ptr() helper function 2014-07-01 07:13:39 -04:00
scsi_transport_api.h
scsi_transport_fc.c scsi: add defines for new FC port speeds. 2014-07-25 17:16:54 -04:00
scsi_transport_iscsi.c iscsi class: Fix freeing of skb in get host error path 2014-08-04 13:16:14 +02:00
scsi_transport_sas.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_transport_spi.c
scsi_transport_srp.c Main set of InfiniBand/RDMA updates for 3.17 merge window: 2014-08-14 11:09:05 -06:00
scsi_typedefs.h
scsi.c scsi: don't store LUN bits in CDB[1] for USB mass-storage devices 2014-09-15 16:01:58 -07:00
scsi.h
scsicam.c
sd_dif.c bio-integrity: Convert to bvec_iter 2013-11-23 22:33:50 -08:00
sd.c scsi: balance out autopm get/put calls in scsi_sysfs_add_sdev() 2014-09-15 16:02:05 -07:00
sd.h sd: Limit transfer length 2014-07-17 22:07:33 +02:00
ses.c [SCSI] ses: Use vpd information from scsi_device 2014-03-27 08:26:31 -07:00
sg.c scsi: convert device_busy to atomic_t 2014-07-25 07:43:45 -04:00
sgiwd93.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sim710.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sni_53c710.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sr_ioctl.c scsi: Implement sr_printk() 2014-07-17 22:07:39 +02:00
sr_vendor.c scsi: Implement sr_printk() 2014-07-17 22:07:39 +02:00
sr.c scsi: balance out autopm get/put calls in scsi_sysfs_add_sdev() 2014-09-15 16:02:05 -07:00
sr.h scsi: move the writeable field from struct scsi_device to struct scsi_cd 2014-07-25 17:16:41 -04:00
st_options.h
st.c scsi: balance out autopm get/put calls in scsi_sysfs_add_sdev() 2014-09-15 16:02:05 -07:00
st.h [SCSI] st: raise device limit 2012-09-14 17:59:29 +01:00
stex.c SCSI: remove unnecessary pci_set_drvdata() 2013-10-14 15:26:04 +02:00
storvsc_drv.c Drivers: add blist flags 2014-07-25 17:23:25 -04:00
sun3_NCR5380.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
sun3_scsi_vme.c scsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c 2014-05-28 12:16:28 +02:00
sun3_scsi.c scsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c 2014-05-28 12:16:28 +02:00
sun3_scsi.h scsi/NCR5380: reduce depth of sun3_scsi nested includes 2014-05-28 12:11:33 +02:00
sun3x_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sun_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sym53c416.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sym53c416.h
t128.c scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
t128.h scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
tmscsim.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
tmscsim.h [SCSI] tmscsim: Move 'last_reset' into host structure 2013-10-25 11:51:37 +01:00
u14-34f.c scsi: fix u14-34f printk format warnings 2014-08-01 08:18:37 -04:00
ultrastor.c
ultrastor.h
virtio_scsi.c virtio-scsi: Implement change_queue_depth for virtscsi targets 2014-07-25 17:17:00 -04:00
vmw_pvscsi.c vmw_pvscsi: Use pci_enable_msix_exact() instead of pci_enable_msix() 2014-07-29 08:38:53 -04:00
vmw_pvscsi.h [SCSI] vmw_pvscsi: Some improvements in pvscsi driver. 2014-03-19 15:04:46 -07:00
wd33c93.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
wd33c93.h switch wd33c93 to ->show_info() 2013-04-09 14:13:15 -04:00
wd7000.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
zalon.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
zorro7xx.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00