-
由 Yang Yingliang 提交于
If device_register() fails in cxl_register_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: 14baf4d9 ("cxl: Add guest-specific code") Signed-off-by: NYang Yingliang <yangyingliang@huawei.com> Acked-by: NAndrew Donnellan <ajd@linux.ibm.com> Acked-by: NFrederic Barrat <fbarrat@linux.ibm.com> Link: https://lore.kernel.org/r/20221111145440.2426970-1-yangyingliang@huawei.comSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
61c80d1c