diff options
author | Andiry Xu <andiry.xu@amd.com> | 2010-03-12 04:10:04 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-19 10:24:09 -0400 |
commit | 1d68064a7d80da4a7334cab0356162e36229c1a1 (patch) | |
tree | 4a451c1ea68c8ec1b212988f2cc8c350d36758aa /drivers/usb | |
parent | bc75fa3825cdbbdeee3a65d91cc5583bdfe41edf (diff) |
USB: xHCI: re-initialize cmd_completion
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>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/host/xhci.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 4cb69e0af834..492a61c2c79d 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c | |||
@@ -1173,6 +1173,7 @@ static int xhci_configure_endpoint(struct xhci_hcd *xhci, | |||
1173 | cmd_completion = &virt_dev->cmd_completion; | 1173 | cmd_completion = &virt_dev->cmd_completion; |
1174 | cmd_status = &virt_dev->cmd_status; | 1174 | cmd_status = &virt_dev->cmd_status; |
1175 | } | 1175 | } |
1176 | init_completion(cmd_completion); | ||
1176 | 1177 | ||
1177 | if (!ctx_change) | 1178 | if (!ctx_change) |
1178 | ret = xhci_queue_configure_endpoint(xhci, in_ctx->dma, | 1179 | ret = xhci_queue_configure_endpoint(xhci, in_ctx->dma, |