diff options
author | Yang Yingliang <yangyingliang@huawei.com> | 2022-11-11 22:54:40 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-11-23 20:03:31 +0100 |
commit | 02cd3032b154fa02fdf90e7467abaeed889330b2 (patch) | |
tree | 740deb0fa9db65946d6ed87bb4f7cbc03ce1f0db /drivers/staging | |
parent | 61c80d1c3833e196256fb060382db94f24d3d9a7 (diff) | |
download | linux-02cd3032b154fa02fdf90e7467abaeed889330b2.tar.gz linux-02cd3032b154fa02fdf90e7467abaeed889330b2.tar.bz2 linux-02cd3032b154fa02fdf90e7467abaeed889330b2.zip |
cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter()
If device_register() fails in cxl_pci_afu|adapter(), the device
is not added, device_unregister() can not be called in the error
path, otherwise it will cause a null-ptr-deref because of removing
not added device.
As comment of device_register() says, it should use put_device() to give
up the reference in the error path. So split device_unregister() into
device_del() and put_device(), then goes to put dev when register fails.
Fixes: f204e0b8cedd ("cxl: Driver code for powernv PCIe based cards for userspace access")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Acked-by: Frederic Barrat <fbarrat@linux.ibm.com>
Acked-by: Andrew Donnellan <ajd@linux.ibm.com>
Link: https://lore.kernel.org/r/20221111145440.2426970-2-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
0 files changed, 0 insertions, 0 deletions