]> git.baikalelectronics.ru Git - kernel.git/commit
s390/dasd: fix null pointer dereference for ERP requests
authorStefan Haberland <sth@linux.ibm.com>
Mon, 16 Nov 2020 15:23:47 +0000 (16:23 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 16 Nov 2020 15:28:02 +0000 (08:28 -0700)
commite482fe99d54f6c1bc12d5a95e1db789207ec985f
tree932f2aed75dd3d0c19d57dc55a8143e5858379db
parenteb0b1350cc075f27550917508e44f8b03046a008
s390/dasd: fix null pointer dereference for ERP requests

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: fad15fe3ce97 ("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>
drivers/s390/block/dasd.c