summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAndiry Xu <andiry.xu@amd.com>2010-03-12 17:10:04 +0800
committerGreg Kroah-Hartman <gregkh@suse.de>2010-04-01 16:01:37 -0700
commitc97ad5f88a6825924f111a6ae0edcc9497fe4448 (patch)
tree920066d9f6d4196fd708f0ee02bee6e4f049adc5 /drivers/usb
parentc1f9a658a3b711b3c642939e716f2907aa450236 (diff)
downloadkernel-crypto-c97ad5f88a6825924f111a6ae0edcc9497fe4448.tar.gz
kernel-crypto-c97ad5f88a6825924f111a6ae0edcc9497fe4448.tar.xz
kernel-crypto-c97ad5f88a6825924f111a6ae0edcc9497fe4448.zip
USB: xHCI: re-initialize cmd_completion
commit 1d68064a7d80da4a7334cab0356162e36229c1a1 upstream. When a signal interrupts a Configure Endpoint command, the cmd_completion used in xhci_configure_endpoint() is not re-initialized and the wait_for_completion_interruptible_timeout() will return failure. Initialize cmd_completion in xhci_configure_endpoint(). Signed-off-by: Andiry Xu <andiry.xu@amd.com> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/xhci-hcd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-hcd.c b/drivers/usb/host/xhci-hcd.c
index 5e92c72df64..fa920c7ed02 100644
--- a/drivers/usb/host/xhci-hcd.c
+++ b/drivers/usb/host/xhci-hcd.c
@@ -1173,6 +1173,7 @@ static int xhci_configure_endpoint(struct xhci_hcd *xhci,
cmd_completion = &virt_dev->cmd_completion;
cmd_status = &virt_dev->cmd_status;
}
+ init_completion(cmd_completion);
if (!ctx_change)
ret = xhci_queue_configure_endpoint(xhci, in_ctx->dma,