From f43b79b90fdbe3e61537d1d9e54c7e8879154a23 Mon Sep 17 00:00:00 2001 From: "K. Y. Srinivasan" Date: Wed, 31 Aug 2011 14:35:55 -0700 Subject: [PATCH] --- yaml --- r: 268126 b: refs/heads/master c: 8b9987e9050aeba12325a3f0ab0f4a2934c37c3c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/staging/hv/vmbus_drv.c | 26 +++++++++++++++----------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 7fd47846e0fb..59bd1c908b91 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d531babe8259992be32144f2c80fa5e15f9d4d26 +refs/heads/master: 8b9987e9050aeba12325a3f0ab0f4a2934c37c3c diff --git a/trunk/drivers/staging/hv/vmbus_drv.c b/trunk/drivers/staging/hv/vmbus_drv.c index 757943b5d406..b5e06d68f058 100644 --- a/trunk/drivers/staging/hv/vmbus_drv.c +++ b/trunk/drivers/staging/hv/vmbus_drv.c @@ -492,7 +492,7 @@ static int vmbus_bus_init(int irq) ret = bus_register(&hv_bus); if (ret) - return ret; + goto err_cleanup; ret = request_irq(irq, vmbus_isr, IRQF_SAMPLE_RANDOM, driver_name, hv_acpi_dev); @@ -500,10 +500,7 @@ static int vmbus_bus_init(int irq) if (ret != 0) { pr_err("Unable to request IRQ %d\n", irq); - - bus_unregister(&hv_bus); - - return ret; + goto err_unregister; } vector = IRQ0_VECTOR + irq; @@ -514,16 +511,23 @@ static int vmbus_bus_init(int irq) */ on_each_cpu(hv_synic_init, (void *)&vector, 1); ret = vmbus_connect(); - if (ret) { - free_irq(irq, hv_acpi_dev); - bus_unregister(&hv_bus); - return ret; - } - + if (ret) + goto err_irq; vmbus_request_offers(); return 0; + +err_irq: + free_irq(irq, hv_acpi_dev); + +err_unregister: + bus_unregister(&hv_bus); + +err_cleanup: + hv_cleanup(); + + return ret; } /**