1
0
Fork 0
alistair23-linux/drivers/s390/block
Stefan Haberland 7411c05a6e s390/dasd: fix null pointer dereference for ERP requests
commit 6f117cb854 upstream.

When requeueing all requests on the device request queue to the blocklayer
we might get to an ERP (error recovery) request that is a copy of an
original CQR.

Those requests do not have blocklayer request information or a pointer to
the dasd_queue set. When trying to access those data it will lead to a
null pointer dereference in dasd_requeue_all_requests().

Fix by checking if the request is an ERP request that can simply be
ignored. The blocklayer request will be requeued by the original CQR that
is on the device queue right behind the ERP request.

Fixes: 9487cfd343 ("s390/dasd: fix handling of internal requests")
Cc: <stable@vger.kernel.org> #4.16
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-11-24 13:29:23 +01:00
..
Kconfig s390/Kconfig: pedantic cleanups 2019-06-04 15:03:46 +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
dasd.c s390/dasd: fix null pointer dereference for ERP requests 2020-11-24 13:29:23 +01:00
dasd_3990_erp.c s390/dasd: configurable IFCC handling 2018-02-22 15:31:23 +01:00
dasd_alias.c s390/dasd: fix endless loop after read unit address configuration 2019-08-01 20:46:14 -06:00
dasd_devmap.c s390/dasd: Recognise data for ESE volumes 2019-07-11 20:39:53 +02:00
dasd_diag.c s390/dasd: fix inability to use DASD with DIAG driver 2020-08-19 08:16:29 +02:00
dasd_diag.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dasd_eckd.c s390/dasd: fix data corruption for thin provisioned devices 2020-03-18 07:17:52 +01:00
dasd_eckd.h s390/dasd: Handle out-of-space constraint 2019-07-11 20:39:54 +02:00
dasd_eer.c s390/dasd: Handle out-of-space constraint 2019-07-11 20:39:54 +02:00
dasd_erp.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dasd_fba.c s390/dasd: Fix zero write for FBA devices 2020-10-01 13:18:23 +02:00
dasd_fba.h s390/dasd: Make dasd_setup_queue() a discipline function 2019-07-11 20:39:54 +02:00
dasd_genhd.c block: genhd: add 'groups' argument to device_add_disk 2018-09-28 08:30:28 -06:00
dasd_int.h s390/dasd: fix data corruption for thin provisioned devices 2020-03-18 07:17:52 +01:00
dasd_ioctl.c s390/dasd: Add new ioctl to release space 2019-07-11 20:39:54 +02:00
dasd_proc.c s390/drivers: fix proc/debugfs file permissions 2018-12-13 10:42:24 +01:00
dcssblk.c libnvdimm: add dax_dev sync flag 2019-07-05 15:19:10 -07:00
scm_blk.c block: genhd: add 'groups' argument to device_add_disk 2018-09-28 08:30:28 -06:00
scm_blk.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-11-13 11:47:01 -08:00
scm_drv.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xpram.c block: Use blk_queue_flag_*() in drivers instead of queue_flag_*() 2018-03-08 14:13:48 -07:00