This helps log the errors in next patches.  The alternative is to
perform a linear search for it with class_find_device_by_devt(class, devt),
as device_destroy do for cleaning.

Signed-off-by: Eugenio Pérez <[email protected]>
---
v4: Set control device pointer to NULL at device create error.
---
 drivers/vdpa/vdpa_user/vduse_dev.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c 
b/drivers/vdpa/vdpa_user/vduse_dev.c
index f15ad425e01f..2af5cb5e1ec6 100644
--- a/drivers/vdpa/vdpa_user/vduse_dev.c
+++ b/drivers/vdpa/vdpa_user/vduse_dev.c
@@ -164,6 +164,7 @@ static DEFINE_IDR(vduse_idr);
 
 static dev_t vduse_major;
 static struct cdev vduse_ctrl_cdev;
+static const struct device *vduse_ctrl_dev;
 static struct cdev vduse_cdev;
 static struct workqueue_struct *vduse_irq_wq;
 static struct workqueue_struct *vduse_irq_bound_wq;
@@ -2532,7 +2533,6 @@ static void vduse_mgmtdev_exit(void)
 static int vduse_init(void)
 {
        int ret;
-       struct device *dev;
 
        ret = class_register(&vduse_class);
        if (ret)
@@ -2549,9 +2549,10 @@ static int vduse_init(void)
        if (ret)
                goto err_ctrl_cdev;
 
-       dev = device_create(&vduse_class, NULL, vduse_major, NULL, "control");
-       if (IS_ERR(dev)) {
-               ret = PTR_ERR(dev);
+       vduse_ctrl_dev = device_create(&vduse_class, NULL, vduse_major, NULL, 
"control");
+       if (IS_ERR(vduse_ctrl_dev)) {
+               ret = PTR_ERR(vduse_ctrl_dev);
+               vduse_ctrl_dev = NULL;
                goto err_device;
        }
 
-- 
2.55.0


Reply via email to