diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index fd3e79d10c84..b66729c7c3ec 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -3048,11 +3048,12 @@ static void i3c_master_unregister_i3c_devs(struct i3c_master_controller *master) if (!i3cdev->dev) continue; - i3cdev->dev->desc = NULL; - if (device_is_registered(&i3cdev->dev->dev)) + if (device_is_registered(&i3cdev->dev->dev)) { + get_device(&i3cdev->dev->dev); device_unregister(&i3cdev->dev->dev); - else - put_device(&i3cdev->dev->dev); + } + i3cdev->dev->desc = NULL; + put_device(&i3cdev->dev->dev); i3cdev->dev = NULL; } }