From 6322fccc6ac6485b4797b2a7eca51e9d5f6b0b59 Mon Sep 17 00:00:00 2001 From: "K. Y. Srinivasan" Date: Fri, 15 Jul 2011 13:38:56 -0700 Subject: [PATCH] --- yaml --- r: 267625 b: refs/heads/master c: 2dda95f80b2afa4bf85c6419f40e11b545cda422 h: refs/heads/master i: 267623: 04d8fad569558ce189b2850ca8cf36d1c6f6faf6 v: v3 --- [refs] | 2 +- trunk/drivers/staging/hv/vmbus_drv.c | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index d4e7d97859ab..8c7dbe386503 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ab8ac090142daa3371217de98f8a00419f8c2670 +refs/heads/master: 2dda95f80b2afa4bf85c6419f40e11b545cda422 diff --git a/trunk/drivers/staging/hv/vmbus_drv.c b/trunk/drivers/staging/hv/vmbus_drv.c index 1c949f5fb716..67a4f336df9c 100644 --- a/trunk/drivers/staging/hv/vmbus_drv.c +++ b/trunk/drivers/staging/hv/vmbus_drv.c @@ -768,7 +768,7 @@ MODULE_DEVICE_TABLE(pci, microsoft_hv_pci_table); static int __init hv_acpi_init(void) { - int ret; + int ret, t; init_completion(&probe_event); @@ -781,16 +781,25 @@ static int __init hv_acpi_init(void) if (ret) return ret; - wait_for_completion(&probe_event); + t = wait_for_completion_timeout(&probe_event, 5*HZ); + if (t == 0) { + ret = -ETIMEDOUT; + goto cleanup; + } if (irq <= 0) { - acpi_bus_unregister_driver(&vmbus_acpi_driver); - return -ENODEV; + ret = -ENODEV; + goto cleanup; } ret = vmbus_bus_init(irq); if (ret) - acpi_bus_unregister_driver(&vmbus_acpi_driver); + goto cleanup; + + return 0; + +cleanup: + acpi_bus_unregister_driver(&vmbus_acpi_driver); return ret; }