linux/block
Jens Axboe 3a07bb1d76 blk-mq: fix potential oops with polling and blk-mq scheduler
If we have a scheduler attached, blk_mq_tag_to_rq() on the
scheduled tags will return NULL if a request is no longer
in flight. This is different than using the normal tags,
where it will always return the fixed request. Check for
this condition for polling, in case we happen to enter
polling for a completed request.

The request address remains valid, so this check and return
should be perfectly safe.

Fixes: bd166ef183 ("blk-mq-sched: add framework for MQ capable IO schedulers")
Tested-by: Stephen Bates <sbates@raithlin.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-04-20 14:53:28 -06:00
..
partitions
Kconfig virtio, vhost: optimizations, fixes 2017-03-02 13:53:13 -08:00
Kconfig.iosched block: get rid of blk-mq default scheduler choice Kconfig entries 2017-02-22 13:19:45 -07:00
Makefile virtio, vhost: optimizations, fixes 2017-03-02 13:53:13 -08:00
badblocks.c
bio-integrity.c
bio.c blk: Ensure users for current->bio_list can see the full list. 2017-03-11 15:31:37 -07:00
blk-cgroup.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
blk-core.c blk: Ensure users for current->bio_list can see the full list. 2017-03-11 15:31:37 -07:00
blk-exec.c
blk-flush.c
blk-integrity.c
blk-ioc.c Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2017-03-03 10:53:35 -08:00
blk-lib.c
blk-map.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
blk-merge.c
blk-mq-cpumap.c
blk-mq-debugfs.c
blk-mq-pci.c
blk-mq-sched.c blk-mq: Restart a single queue if tag sets are shared 2017-04-07 12:40:09 -06:00
blk-mq-sched.h blk-mq: Restart a single queue if tag sets are shared 2017-04-07 12:40:09 -06:00
blk-mq-sysfs.c blk-mq: free hctx->cpumask in release handler of hctx's kobject 2017-03-08 09:56:12 -07:00
blk-mq-tag.c blk-mq: Fix tagset reinit in the presence of cpu hot-unplug 2017-03-13 08:14:23 -06:00
blk-mq-tag.h blk-mq-sched: Allocate sched reserved tags as specified in the original queue tagset 2017-03-02 08:56:04 -07:00
blk-mq-virtio.c blk-mq: provide a default queue mapping for virtio device 2017-02-27 20:54:05 +02:00
blk-mq.c blk-mq: fix potential oops with polling and blk-mq scheduler 2017-04-20 14:53:28 -06:00
blk-mq.h blk-mq: use the right hctx when getting a driver tag fails 2017-04-07 08:56:26 -06:00
blk-settings.c
blk-softirq.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/topology.h> 2017-03-02 08:42:26 +01:00
blk-stat.c blk-stat: fix blk_stat_sum() if all samples are batched 2017-03-16 09:46:14 -06:00
blk-stat.h
blk-sysfs.c blk-mq-sched: fix crash in switch error path 2017-04-07 08:56:48 -06:00
blk-tag.c
blk-throttle.c scripts/spelling.txt: add "embeded" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
blk-timeout.c
blk-wbt.c
blk-wbt.h
blk-zoned.c
blk.h
bounce.c
bsg-lib.c
bsg.c lib/vsprintf.c: remove %Z support 2017-02-27 18:43:47 -08:00
cfq-iosched.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h> 2017-03-02 08:42:27 +01:00
cmdline-parser.c
compat_ioctl.c
deadline-iosched.c
elevator.c block: respect BLK_MQ_F_NO_SCHED 2017-04-19 14:15:43 -06:00
genhd.c Revert "scsi, block: fix duplicate bdi name registration crashes" 2017-03-08 10:55:17 -07:00
ioctl.c
ioprio.c sched/headers: Prepare to move the task_lock()/unlock() APIs to <linux/sched/task.h> 2017-03-02 08:42:38 +01:00
mq-deadline.c
noop-iosched.c
opal_proto.h block/sed-opal: allocate struct opal_dev dynamically 2017-02-17 12:41:47 -07:00
partition-generic.c
scsi_ioctl.c
sed-opal.c block/sed: Fix opal user range check and unused variables 2017-03-08 09:56:12 -07:00
t10-pi.c