|
@@ -867,7 +867,7 @@ static int vmbus_bus_init(int irq)
|
|
on_each_cpu(hv_synic_init, NULL, 1);
|
|
on_each_cpu(hv_synic_init, NULL, 1);
|
|
ret = vmbus_connect();
|
|
ret = vmbus_connect();
|
|
if (ret)
|
|
if (ret)
|
|
- goto err_alloc;
|
|
|
|
|
|
+ goto err_connect;
|
|
|
|
|
|
if (vmbus_proto_version > VERSION_WIN7)
|
|
if (vmbus_proto_version > VERSION_WIN7)
|
|
cpu_hotplug_disable();
|
|
cpu_hotplug_disable();
|
|
@@ -885,6 +885,8 @@ static int vmbus_bus_init(int irq)
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
+err_connect:
|
|
|
|
+ on_each_cpu(hv_synic_cleanup, NULL, 1);
|
|
err_alloc:
|
|
err_alloc:
|
|
hv_synic_free();
|
|
hv_synic_free();
|
|
hv_remove_vmbus_irq();
|
|
hv_remove_vmbus_irq();
|