diff options
author | zhengbin <zhengbin13@huawei.com> | 2019-02-20 21:27:05 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-02-13 13:51:13 +0100 |
commit | b0393aadc2d2294ba259fe010291f72a130d2d60 (patch) | |
tree | 36238dfbca3549432b151a49cd5504760b046022 /block | |
parent | 960434acef375b2a73168b467fdfc7fa0a11a68e (diff) | |
download | linux-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.c | 10 |
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); + } } /** |