linux/drivers/scsi
Finn Thain 22f5f10d2d ncr5380: Fix SCSI_IRQ_NONE bugs
Oak scsi doesn't use any IRQ, but it sets irq = IRQ_NONE rather than
SCSI_IRQ_NONE. Problem is, the core NCR5380 driver expects SCSI_IRQ_NONE
if it is to issue IDENTIFY commands that prevent target disconnection.
And, as Geert points out, IRQ_NONE is part of enum irqreturn.

Other drivers, when they can't get an IRQ or can't use one, will set
host->irq = SCSI_IRQ_NONE (that is, 255). But when they exit they will
attempt to free IRQ 255 which was never requested.

Fix these bugs by using NO_IRQ in place of SCSI_IRQ_NONE and IRQ_NONE.
That means IRQ 0 is no longer probed by ISA drivers but I don't think
this matters.

Setting IRQ = 255 for these ISA drivers is understood to mean no IRQ.
This remains supported so as to avoid breaking existing ISA setups (which
can be difficult to get working) and because existing documentation
(SANE, TLDP etc) describes this usage for the ISA NCR5380 driver options.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Tested-by: Michael Schmitz <schmitzmic@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2014-11-20 09:11:07 +01:00
..
aacraid scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
aic7xxx scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
aic94xx scsi: always assign block layer tags if enabled 2014-11-12 11:19:43 +01:00
arcmsr scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
arm ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01:00
be2iscsi be2iscsi: check ip buffer before copying 2014-09-30 09:29:55 +02:00
bfa scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
bnx2fc bnx2fc: fix an error code in _bnx2fc_create() 2014-11-12 12:05:25 +01:00
bnx2i SCSI for-linus on 20141007 2014-10-07 21:29:18 -04:00
csiostor scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
cxgbi cxgb4i: send abort_rpl correctly 2014-11-10 15:25:29 +01:00
device_handler scsi: handle more device handler setup/teardown in common code 2014-11-12 11:19:36 +01:00
dpt
esas2r scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
fcoe scsi: always assign block layer tags if enabled 2014-11-12 11:19:43 +01:00
fnic Fnic: Fnic Driver crashed with NULL pointer reference 2014-11-20 09:11:00 +01:00
ibmvscsi scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
isci scsi: always assign block layer tags if enabled 2014-11-12 11:19:43 +01:00
libfc scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
libsas scsi: don't force tagged_supported in drivers 2014-11-12 11:19:44 +01:00
lpfc scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
megaraid scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
mpt2sas scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
mpt3sas scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
mvsas scsi: always assign block layer tags if enabled 2014-11-12 11:19:43 +01:00
osd Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd 2014-10-21 12:53:45 -07:00
pcmcia treewide: Fix typo in printk 2014-08-26 09:35:54 +02:00
pm8001 scsi: always assign block layer tags if enabled 2014-11-12 11:19:43 +01:00
qla2xxx qla2xxx: remove redundant declaration in 'qla_gbl.h' 2014-11-12 11:32:01 +01:00
qla4xxx scsi: don't force tagged_supported in drivers 2014-11-12 11:19:44 +01:00
sym53c8xx_2 scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
ufs ufs: remove spurious scsi_set_tag_type call 2014-11-12 11:19:44 +01:00
.gitignore
3w-9xxx.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
3w-9xxx.h
3w-sas.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
3w-sas.h
3w-xxxx.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
aha152x.c aha152x: debug output update and whitespace cleanup 2014-11-12 11:15:57 +01:00
aha152x.h
aha1542.c
aha1542.h
aha1740.c scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01:00
aha1740.h
atari_NCR5380.c ncr5380: Remove redundant AUTOSENSE macro 2014-11-20 09:11:06 +01:00
atari_scsi.c ncr5380: Remove redundant AUTOSENSE macro 2014-11-20 09:11:06 +01:00
atari_scsi.h ncr5380: Remove unused macros 2014-11-20 09:11:04 +01:00
atp870u.c SCSI: remove unnecessary pci_set_drvdata() 2013-10-14 15:26:04 +02:00
atp870u.h
BusLogic.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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: split scsi_nonblockable_ioctl 2014-11-12 11:16:11 +01:00
constants.c scsi: simplify scsi_log_(send|completion) 2014-11-12 11:16:05 +01:00
dc395x.c scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
dc395x.h
dmx3191d.c ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01:00
dpt_i2o.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
dpti.h scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
dtc.c ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01:00
dtc.h ncr5380: Remove duplicate comments 2014-11-20 09:11:06 +01: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 scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
esp_scsi.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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 ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01:00
g_NCR5380.h ncr5380: Remove duplicate comments 2014-11-20 09:11:06 +01: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: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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: remove ordered_tag host template field 2014-11-12 11:19:41 +01:00
hpsa_cmd.h hpsa: fix handling of hpsa_volume_offline return value 2014-06-02 09:55:02 +02:00
hpsa.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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 ipr: set coherent DMA mask 2014-11-12 11:32:00 +01:00
ipr.h ipr: convert to generic DMA API 2014-11-12 11:32:00 +01:00
ips.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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 iscsi_tcp: export port being used 2014-09-30 09:29:55 +02: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 Merge branch 'for-3.18/core' of git://git.kernel.dk/linux-block 2014-10-18 11:53:51 -07: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 scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
mac53c94.c
mac53c94.h
mac_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mac_scsi.c ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01:00
mac_scsi.h ncr5380: Remove duplicate comments 2014-11-20 09:11:06 +01:00
Makefile xen-scsifront: Add Xen PV SCSI frontend driver 2014-09-23 13:36:19 +00:00
megaraid.c scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01: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: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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 ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01:00
NCR5380.h ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01: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 for-linus on 20141007 2014-10-07 21:29:18 -04:00
nsp32.h
osst_detect.h
osst_options.h
osst.c osst: call scsi_set_medium_removal directly 2014-11-12 11:16:12 +01:00
osst.h
pas16.c ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01:00
pas16.h ncr5380: Remove duplicate comments 2014-11-20 09:11:06 +01:00
pmcraid.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
pmcraid.h
ppa.c ppa: switch to ->show_info() 2013-04-09 14:13:17 -04:00
ppa.h
ps3rom.c scsi: Remove scsi_print_command when calling abort 2014-11-12 11:16:04 +01:00
qla1280.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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: error message should say scsi_host_alloc not scsi_register 2014-11-12 11:31:58 +01: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: refactor scsi_reset_provider handling 2014-11-12 11:16:10 +01:00
scsi_ioctl.c scsi: return EAGAIN when resetting a device under EH 2014-11-12 11:16:12 +01:00
scsi_lib_dma.c
scsi_lib.c scsi: add new scsi-command flag for tagged commands 2014-11-12 11:19:40 +01:00
scsi_logging.h scsi: simplify scsi_log_(send|completion) 2014-11-12 11:16:05 +01:00
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 set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01: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: remove ordered_tags scsi_device field 2014-11-12 11:19:40 +01: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: remove abuses of scsi_populate_tag 2014-11-12 11:19:41 +01:00
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 set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
scsi.h
scsicam.c scsi: PC partition tables are little endian 2014-11-12 11:15:54 +01:00
sd_dif.c sd: Honor block layer integrity handling flags 2014-09-30 15:17:35 -06:00
sd.c sd: disable discard_zeroes_data for UNMAP 2014-11-12 11:19:14 +01:00
sd.h scsi: introduce sdev_prefix_printk() 2014-11-12 11:15:57 +01:00
ses.c [SCSI] ses: Use vpd information from scsi_device 2014-03-27 08:26:31 -07:00
sg.c scsi: split scsi_nonblockable_ioctl 2014-11-12 11:16:11 +01: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: repurpose the last argument from print_opcode_name() 2014-11-12 11:16:03 +01:00
sr_vendor.c scsi: Implement sr_printk() 2014-07-17 22:07:39 +02:00
sr.c scsi: split scsi_nonblockable_ioctl 2014-11-12 11:16:11 +01:00
sr.h scsi: introduce sdev_prefix_printk() 2014-11-12 11:15:57 +01:00
st_options.h
st.c st: call scsi_set_medium_removal directly 2014-11-12 11:16:12 +01:00
st.h [SCSI] st: raise device limit 2012-09-14 17:59:29 +01:00
stex.c scsi: don't force tagged_supported in drivers 2014-11-12 11:19:44 +01:00
storvsc_drv.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
sun3_NCR5380.c ncr5380: Remove redundant AUTOSENSE macro 2014-11-20 09:11:06 +01: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 ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01:00
sun3_scsi.h ncr5380: Remove duplicate comments 2014-11-20 09:11:06 +01: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 ncr5380: Fix SCSI_IRQ_NONE bugs 2014-11-20 09:11:07 +01:00
t128.h ncr5380: Remove duplicate comments 2014-11-20 09:11:06 +01:00
tmscsim.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
tmscsim.h tmscim: remove unused SCSI_IRQ_NONE macro definition 2014-11-12 11:31:58 +01:00
u14-34f.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
ultrastor.c
ultrastor.h
virtio_scsi.c scsi: don't set tagging state from scsi_adjust_queue_depth 2014-11-12 11:19:43 +01:00
vmw_pvscsi.c vmw_pvscsi: fixup tagging 2014-11-12 11:31:59 +01:00
vmw_pvscsi.h PCI: Move PCI_VENDOR_ID_VMWARE to pci_ids.h 2014-09-24 11:52:09 -06: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
xen-scsifront.c xen: remove DEFINE_XENBUS_DRIVER() macro 2014-10-06 10:27:57 +01: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