OpenCloudOS-Kernel/drivers/ide
Jens Axboe 9a6d548800 ide: ensure atapi sense request aren't preempted
There's an issue with how sense requests are handled in IDE. If ide-cd
encounters an error, it queues a sense request. With how IDE request
handling is done, this is the next request we need to handle. But it's
impossible to guarantee this, as another request could come in between
the sense being queued, and ->queue_rq() being run and handling it. If
that request ALSO fails, then we attempt to doubly queue the single
sense request we have.

Since we only support one active request at the time, defer request
processing when a sense request is queued.

Fixes: 600335205b "ide: convert to blk-mq"
Reported-by: He Zhe <zhe.he@windriver.com>
Tested-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-31 08:25:09 -07:00
..
Kconfig treewide: simplify Kconfig dependencies for removed archs 2018-03-26 15:55:57 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
aec62xx.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
ali14xx.c sections: fix section conflicts in drivers/ide 2012-10-06 03:04:41 +09:00
alim15x3.c alim15x3: move irq-restore before pci_dev_put() 2018-06-05 16:26:46 -04:00
amd74xx.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
atiixp.c Drivers: ide: Remove typedef atiixp_ide_timing 2014-10-15 14:27:38 -04:00
au1xxx-ide.c ide: drop owner assignment from platform_drivers 2014-10-20 16:20:38 +02:00
buddha.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
cmd64x.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
cmd640.c cmd640: add __init attribute 2016-07-26 15:25:30 -07:00
cs5520.c ide: remove deprecated use of pci api 2015-04-17 15:32:07 -04:00
cs5530.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
cs5535.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
cs5536.c ide: cs5536: use module_pci_driver() 2013-11-14 18:21:25 -05:00
cy82c693.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
delkin_cb.c drivers/ide/delkin_cb: Convert to module_pci_driver 2013-07-10 12:09:10 -07:00
dtc2278.c sections: fix section conflicts in drivers/ide 2012-10-06 03:04:41 +09:00
falconide.c
gayle.c ide: drop owner assignment from platform_drivers 2014-10-20 16:20:38 +02:00
hpt366.c ide: mark expected switch fall-throughs 2018-08-13 11:48:54 -07:00
ht6560b.c sections: fix section conflicts in drivers/ide 2012-10-06 03:04:41 +09:00
icside.c ide: icside: remove incorrect initconst annotation 2016-03-20 16:59:27 -04:00
ide-4drives.c
ide-acpi.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ide-atapi.c ide: ensure atapi sense request aren't preempted 2019-01-31 08:25:09 -07:00
ide-cd.c ide: don't use req->special 2018-11-10 08:03:52 -07:00
ide-cd.h block: Switch struct packet_command to use struct scsi_sense_hdr 2018-08-02 15:22:13 -06:00
ide-cd_ioctl.c block: Switch struct packet_command to use struct scsi_sense_hdr 2018-08-02 15:22:13 -06:00
ide-cd_verbose.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ide-cs.c drivers/ide/ide-cs.c: adjust suspicious bit operation 2012-06-12 15:51:41 -07:00
ide-devsets.c ide: don't use req->special 2018-11-10 08:03:52 -07:00
ide-disk.c ide: don't use req->special 2018-11-10 08:03:52 -07:00
ide-disk.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ide-disk_ioctl.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ide-disk_proc.c ide: replace ->proc_fops with ->proc_show 2018-05-16 07:24:30 +02:00
ide-dma-sff.c
ide-dma.c ide: kill ide_toggle_bounce 2018-05-07 07:15:41 +02:00
ide-eh.c ide: don't use req->special 2018-11-10 08:03:52 -07:00
ide-floppy.c ide: don't use req->special 2018-11-10 08:03:52 -07:00
ide-floppy.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ide-floppy_ioctl.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ide-floppy_proc.c ide: replace ->proc_fops with ->proc_show 2018-05-16 07:24:30 +02:00
ide-gd.c block: genhd: add 'groups' argument to device_add_disk 2018-09-28 08:30:28 -06:00
ide-gd.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ide-generic.c treewide: simplify Kconfig dependencies for removed archs 2018-03-26 15:55:57 +02:00
ide-io-std.c
ide-io.c ide: ensure atapi sense request aren't preempted 2019-01-31 08:25:09 -07:00
ide-ioctls.c block: sanitize blk_get_request calling conventions 2018-05-14 08:55:12 -06:00
ide-iops.c ide: don't enable/disable interrupts in force threaded-IRQ mode 2018-06-05 16:26:47 -04:00
ide-legacy.c
ide-lib.c ide: kill ide_toggle_bounce 2018-05-07 07:15:41 +02:00
ide-park.c ide: ensure atapi sense request aren't preempted 2019-01-31 08:25:09 -07:00
ide-pci-generic.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
ide-pio-blacklist.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ide-pm.c ide: don't acquire queue_lock in ide_complete_pm_rq 2018-11-16 09:17:02 -07:00
ide-pnp.c PNP: ide: constify pnp_device_id 2017-08-16 11:25:16 -07:00
ide-probe.c ide: ensure atapi sense request aren't preempted 2019-01-31 08:25:09 -07:00
ide-proc.c ide: fix a typo in the settings proc file name 2019-01-22 15:08:12 +13:00
ide-scan-pci.c ide: fix IRQ assignment for PCI bus order probing 2017-10-03 14:03:31 -05:00
ide-sysfs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ide-tape.c ide: don't use req->special 2018-11-10 08:03:52 -07:00
ide-taskfile.c ide: don't use req->special 2018-11-10 08:03:52 -07:00
ide-timings.c ide: avoid warning for timings calculation 2017-07-21 04:37:22 +01:00
ide-xfer-mode.c
ide.c treewide: Fix function prototypes for module_param_call() 2017-10-31 15:30:37 +01:00
ide_platform.c ide: drop owner assignment from platform_drivers 2014-10-20 16:20:38 +02:00
it821x.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
it8172.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
it8213.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
jmicron.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
macide.c
ns87415.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
opti621.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
palm_bk3710.c ide: palm_bk3710: add __initdata to palm_bk3710_port_info 2017-02-27 20:43:26 -05:00
pdc202xx_new.c PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
pdc202xx_old.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
piix.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
pmac.c powerpc updates for 4.21 2018-12-27 10:43:24 -08:00
q40ide.c
qd65xx.c sections: fix section conflicts in drivers/ide 2012-10-06 03:04:41 +09:00
qd65xx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rapide.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
rz1000.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
sc1200.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
serverworks.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
setup-pci.c ide: pci: free PCI BARs on initialization failure 2017-10-03 14:02:57 -05:00
sgiioc4.c ide: remove deprecated use of pci api 2015-04-17 15:32:07 -04:00
siimage.c block: introduce new block status code type 2017-06-09 09:27:32 -06:00
sis5513.c ide: mark expected switch fall-throughs 2018-08-13 11:48:54 -07:00
sl82c105.c sl82c105: deprecate pci_get_bus_and_slot() 2018-01-11 17:29:04 -06:00
slc90e66.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
tc86c001.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
triflex.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
trm290.c ide: constify ide_dma_ops structures 2016-01-18 14:12:33 -05:00
tx4938ide.c ide: drop owner assignment from platform_drivers 2014-10-20 16:20:38 +02:00
tx4939ide.c ide: drop owner assignment from platform_drivers 2014-10-20 16:20:38 +02:00
umc8672.c sections: fix section conflicts in drivers/ide 2012-10-06 03:04:41 +09:00
via82cxxx.c Drivers: ide: remove __dev* attributes. 2013-01-03 15:57:03 -08:00