Cleanup error handling in vmbus_child_device_register(). Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> Signed-off-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> Signed-off-by: Abhishek Kane <v-abkane@xxxxxxxxxxxxx> Signed-off-by: Hank Janssen <hjanssen@xxxxxxxxxxxxx> --- drivers/staging/hv/vmbus_drv.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index d597dd4..4d569ad 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -720,11 +720,16 @@ int vmbus_child_device_register(struct hv_device *child_device_obj) */ ret = device_register(&child_device_obj->device); + if (ret) + return ret; + /* vmbus_probe() error does not get propergate to device_register(). */ ret = child_device_obj->probe_error; - if (ret) + if (ret) { pr_err("Unable to register child device\n"); + device_unregister(&child_device_obj->device); + } else pr_info("child device %s registered\n", dev_name(&child_device_obj->device)); -- 1.7.4.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel