summaryrefslogtreecommitdiff
path: root/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c')
-rw-r--r--drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c b/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
index d64931f..2aa15e9 100644
--- a/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
+++ b/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
@@ -116,13 +116,17 @@ static int vpmadt032_load_firmware(struct voicebus *vb)
pci_set_drvdata(vb->pdev, ctx);
old = vb->ops;
vb->ops = &loader_operations;
- wait_for_completion(&ctx->done);
+ if (wait_for_completion_timeout(&ctx->done, HZ*2)) {
+ dev_err(&vb->pdev->dev,
+ "Timeout waiting for load in %s.\n", __func__);
+ ret = -EIO;
+ }
vb->ops = old;
pci_set_drvdata(vb->pdev, old_drvdata);
__vpmadt032_cleanup(ctx->pvt);
error_exit:
kfree(ctx);
- return 0;
+ return ret;
}
static struct vpmadt_loader loader = {