summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorzhengbin <zhengbin13@huawei.com>2019-02-20 21:27:05 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-02-13 13:51:13 +0100
commitb0393aadc2d2294ba259fe010291f72a130d2d60 (patch)
tree36238dfbca3549432b151a49cd5504760b046022 /block
parent960434acef375b2a73168b467fdfc7fa0a11a68e (diff)
downloadlinux-stable-b0393aadc2d2294ba259fe010291f72a130d2d60.tar.gz
linux-stable-b0393aadc2d2294ba259fe010291f72a130d2d60.tar.bz2
linux-stable-b0393aadc2d2294ba259fe010291f72a130d2d60.zip
block: fix NULL pointer dereference in register_disk
commit 4d7c1d3fd7c7eda7dea351f071945e843a46c145 upstream. If __device_add_disk-->bdi_register_owner-->bdi_register--> bdi_register_va-->device_create_vargs fails, bdi->dev is still NULL, __device_add_disk-->register_disk will visit bdi->dev->kobj. This patch fixes that. Signed-off-by: zhengbin <zhengbin13@huawei.com> Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Jack Wang <jinpu.wang@cloud.ionos.com>
Diffstat (limited to 'block')
-rw-r--r--block/genhd.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/block/genhd.c b/block/genhd.c
index 2b536ab570ac..6965dde96373 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -652,10 +652,12 @@ exit:
kobject_uevent(&part_to_dev(part)->kobj, KOBJ_ADD);
disk_part_iter_exit(&piter);
- err = sysfs_create_link(&ddev->kobj,
- &disk->queue->backing_dev_info->dev->kobj,
- "bdi");
- WARN_ON(err);
+ if (disk->queue->backing_dev_info->dev) {
+ err = sysfs_create_link(&ddev->kobj,
+ &disk->queue->backing_dev_info->dev->kobj,
+ "bdi");
+ WARN_ON(err);
+ }
}
/**