diff options
author | zhengbin <zhengbin13@huawei.com> | 2019-02-20 21:27:05 +0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-02-28 14:01:36 -0700 |
commit | 4d7c1d3fd7c7eda7dea351f071945e843a46c145 (patch) | |
tree | ee56665588e6be4257fd7ac2d787e00ad6f2bb7a /block | |
parent | dce30ca9e3b676fb288c33c1f4725a0621361185 (diff) | |
download | linux-4d7c1d3fd7c7eda7dea351f071945e843a46c145.tar.bz2 |
block: fix NULL pointer dereference in register_disk
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>
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 1dd8fd6613b8..78b82d26aa9c 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -655,10 +655,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); + } } /** |