diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index 8153a4d493d5..3feed10a19a6 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -47,7 +47,6 @@ struct hv_bus { struct tasklet_struct event_dpc; }; -static int vmbus_remove(struct device *device); static void vmbus_shutdown(struct device *device); static irqreturn_t vmbus_isr(int irq, void *dev_id); @@ -248,6 +247,35 @@ static int vmbus_probe(struct device *child_device) return ret; } +/* + * vmbus_remove - Remove a vmbus device + */ +static int vmbus_remove(struct device *child_device) +{ + int ret; + struct hv_driver *drv; + + + if (child_device->driver) { + drv = drv_to_hv_drv(child_device->driver); + + /* + * Let the specific open-source driver handles the removal if + * it can + */ + if (drv->driver.remove) { + ret = drv->driver.remove(child_device); + } else { + DPRINT_ERR(VMBUS_DRV, + "remove() method not set for driver - %s", + child_device->driver->name); + ret = -1; + } + } + + return 0; +} + /* The one and only one */ static struct hv_bus hv_bus = { .bus.name = "vmbus", @@ -776,35 +804,6 @@ void vmbus_child_device_unregister(struct hv_device *device_obj) &device_obj->device); } -/* - * vmbus_remove - Remove a vmbus device - */ -static int vmbus_remove(struct device *child_device) -{ - int ret; - struct hv_driver *drv; - - - if (child_device->driver) { - drv = drv_to_hv_drv(child_device->driver); - - /* - * Let the specific open-source driver handles the removal if - * it can - */ - if (drv->driver.remove) { - ret = drv->driver.remove(child_device); - } else { - DPRINT_ERR(VMBUS_DRV, - "remove() method not set for driver - %s", - child_device->driver->name); - ret = -1; - } - } - - return 0; -} - /* * vmbus_shutdown - Shutdown a vmbus device */