Commit 9973026f572d for kernel

commit 9973026f572db6b67570cadc30942f3014e41079
Author: Jan Höppner <hoeppner@linux.ibm.com>
Date:   Mon Jul 27 16:28:39 2026 +0200

    s390/dasd: Fix potential NULL pointer dereference

    dasd_release_space() checks the implementation of the is_ese()
    discipline function before calling it to determine if a given device is
    an ESE DASD.

    The current usage of the logical AND operator will lead to a NULL
    pointer dereference as the function is called even if the function
    pointer is NULL.

    Fix this by using the logical OR operator.

    Fixes: 91dc4a197569 ("s390/dasd: Add new ioctl to release space")
    Cc: stable@vger.kernel.org # v5.3+
    Reported-by: Vasily Gorbik <gor@linux.ibm.com>
    Acked-by: Eduard Shishkin <edward6@linux.ibm.com>
    Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
    Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
    Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
    Link: https://patch.msgid.link/20260727142840.567286-3-sth@linux.ibm.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
index c85ee42732a3..e5b8b413f5ab 100644
--- a/drivers/s390/block/dasd_ioctl.c
+++ b/drivers/s390/block/dasd_ioctl.c
@@ -324,7 +324,7 @@ static int dasd_ioctl_check_format(struct block_device *bdev, void __user *argp)
 static int dasd_release_space(struct dasd_device *device,
 			      struct format_data_t *rdata)
 {
-	if (!device->discipline->is_ese && !device->discipline->is_ese(device))
+	if (!device->discipline->is_ese || !device->discipline->is_ese(device))
 		return -ENOTSUPP;
 	if (!device->discipline->release_space)
 		return -ENOTSUPP;