diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index 2fccb1f974c0..466425a5ed3f 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -334,22 +334,14 @@ static int vmbus_probe(struct device *child_device) */ static int vmbus_remove(struct device *child_device) { - int ret; - struct hv_driver *drv; - + struct hv_driver *drv = drv_to_hv_drv(child_device->driver); struct hv_device *dev = device_to_hv_device(child_device); - if (child_device->driver) { - drv = drv_to_hv_drv(child_device->driver); - - if (drv->remove) { - ret = drv->remove(dev); - } else { - pr_err("remove not set for driver %s\n", - dev_name(child_device)); - ret = -ENODEV; - } - } + if (drv->remove) + drv->remove(dev); + else + pr_err("remove not set for driver %s\n", + dev_name(child_device)); return 0; }