• Stefan Haberland's avatar
    s390/dasd: fix null pointer dereference for ERP requests · 6f117cb8
    Stefan Haberland authored
    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: 9487cfd3
    
     ("s390/dasd: fix handling of internal requests")
    Cc: <stable@vger.kernel.org> #4.16
    Signed-off-by: default avatarStefan Haberland <sth@linux.ibm.com>
    Reviewed-by: default avatarJan Hoeppner <hoeppner@linux.ibm.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    6f117cb8
dasd.c 113 KB