]> git.itanic.dy.fi Git - linux-stable/commit
s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
authorStefan Haberland <sth@linux.ibm.com>
Mon, 19 Sep 2022 15:49:31 +0000 (17:49 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 19 Sep 2022 16:19:28 +0000 (10:19 -0600)
commitdb7ba07108a48c0f95b74fabbfd5d63e924f992d
tree3ba723850d796ba33f7680f38dbea2eba1340791
parentc4fa368466cc1b60bb92f867741488930ddd6034
s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup

Fix Oops in dasd_alias_get_start_dev() function caused by the pavgroup
pointer being NULL.

The pavgroup pointer is checked on the entrance of the function but
without the lcu->lock being held. Therefore there is a race window
between dasd_alias_get_start_dev() and _lcu_update() which sets
pavgroup to NULL with the lcu->lock held.

Fix by checking the pavgroup pointer with lcu->lock held.

Cc: <stable@vger.kernel.org> # 2.6.25+
Fixes: 8e09f21574ea ("[S390] dasd: add hyper PAV support to DASD device driver, part 1")
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Link: https://lore.kernel.org/r/20220919154931.4123002-2-sth@linux.ibm.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/s390/block/dasd_alias.c