diff options
Diffstat (limited to 'drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c')
-rw-r--r-- | drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c | 8 |
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 = { |