Staging: hv: check return value of device_register()
Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Cc: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c19fbca307
commit
5d48a1c202
@@ -192,7 +192,7 @@ int blkvsc_drv_init(PFN_DRIVERINITIALIZE pfn_drv_init)
|
|||||||
drv_ctx->shutdown = blkvsc_shutdown;
|
drv_ctx->shutdown = blkvsc_shutdown;
|
||||||
|
|
||||||
/* The driver belongs to vmbus */
|
/* The driver belongs to vmbus */
|
||||||
vmbus_child_driver_register(drv_ctx);
|
ret = vmbus_child_driver_register(drv_ctx);
|
||||||
|
|
||||||
DPRINT_EXIT(BLKVSC_DRV);
|
DPRINT_EXIT(BLKVSC_DRV);
|
||||||
|
|
||||||
|
@@ -82,8 +82,7 @@ static inline struct driver_context *driver_to_driver_context(struct device_driv
|
|||||||
|
|
||||||
/* Vmbus interface */
|
/* Vmbus interface */
|
||||||
|
|
||||||
void
|
int vmbus_child_driver_register(
|
||||||
vmbus_child_driver_register(
|
|
||||||
struct driver_context* driver_ctx
|
struct driver_context* driver_ctx
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -114,7 +114,7 @@ int netvsc_drv_init(PFN_DRIVERINITIALIZE pfn_drv_init)
|
|||||||
drv_ctx->remove = netvsc_remove;
|
drv_ctx->remove = netvsc_remove;
|
||||||
|
|
||||||
/* The driver belongs to vmbus */
|
/* The driver belongs to vmbus */
|
||||||
vmbus_child_driver_register(drv_ctx);
|
ret = vmbus_child_driver_register(drv_ctx);
|
||||||
|
|
||||||
DPRINT_EXIT(NETVSC_DRV);
|
DPRINT_EXIT(NETVSC_DRV);
|
||||||
|
|
||||||
|
@@ -162,7 +162,7 @@ int storvsc_drv_init(PFN_DRIVERINITIALIZE pfn_drv_init)
|
|||||||
drv_ctx->remove = storvsc_remove;
|
drv_ctx->remove = storvsc_remove;
|
||||||
|
|
||||||
/* The driver belongs to vmbus */
|
/* The driver belongs to vmbus */
|
||||||
vmbus_child_driver_register(drv_ctx);
|
ret = vmbus_child_driver_register(drv_ctx);
|
||||||
|
|
||||||
DPRINT_EXIT(STORVSC_DRV);
|
DPRINT_EXIT(STORVSC_DRV);
|
||||||
|
|
||||||
|
@@ -435,7 +435,18 @@ int vmbus_bus_init(PFN_DRIVERINITIALIZE pfn_drv_init)
|
|||||||
dev_ctx->device.release = vmbus_bus_release;
|
dev_ctx->device.release = vmbus_bus_release;
|
||||||
|
|
||||||
/* Setup the bus as root device */
|
/* Setup the bus as root device */
|
||||||
device_register(&dev_ctx->device);
|
ret = device_register(&dev_ctx->device);
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
DPRINT_ERR(VMBUS_DRV, "ERROR - Unable to register vmbus root device");
|
||||||
|
|
||||||
|
free_irq(vmbus_irq, NULL);
|
||||||
|
bus_unregister(&vmbus_drv_ctx->bus);
|
||||||
|
|
||||||
|
ret = -1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
vmbus_drv_obj->GetChannelOffers();
|
vmbus_drv_obj->GetChannelOffers();
|
||||||
|
|
||||||
@@ -491,9 +502,10 @@ Name: vmbus_child_driver_register()
|
|||||||
Desc: Register a vmbus's child driver
|
Desc: Register a vmbus's child driver
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
void vmbus_child_driver_register(struct driver_context* driver_ctx)
|
int vmbus_child_driver_register(struct driver_context* driver_ctx)
|
||||||
{
|
{
|
||||||
VMBUS_DRIVER_OBJECT *vmbus_drv_obj=&g_vmbus_drv.drv_obj;
|
VMBUS_DRIVER_OBJECT *vmbus_drv_obj=&g_vmbus_drv.drv_obj;
|
||||||
|
int ret;
|
||||||
|
|
||||||
DPRINT_ENTER(VMBUS_DRV);
|
DPRINT_ENTER(VMBUS_DRV);
|
||||||
|
|
||||||
@@ -502,11 +514,13 @@ void vmbus_child_driver_register(struct driver_context* driver_ctx)
|
|||||||
/* The child driver on this vmbus */
|
/* The child driver on this vmbus */
|
||||||
driver_ctx->driver.bus = &g_vmbus_drv.bus;
|
driver_ctx->driver.bus = &g_vmbus_drv.bus;
|
||||||
|
|
||||||
driver_register(&driver_ctx->driver);
|
ret = driver_register(&driver_ctx->driver);
|
||||||
|
|
||||||
vmbus_drv_obj->GetChannelOffers();
|
vmbus_drv_obj->GetChannelOffers();
|
||||||
|
|
||||||
DPRINT_EXIT(VMBUS_DRV);
|
DPRINT_EXIT(VMBUS_DRV);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL(vmbus_child_driver_register);
|
EXPORT_SYMBOL(vmbus_child_driver_register);
|
||||||
|
Reference in New Issue
Block a user