Browse Source

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>
Andiry Xu 15 years ago
parent
commit
1d68064a7d
1 changed files with 1 additions and 0 deletions
  1. 1 0
      drivers/usb/host/xhci.c

+ 1 - 0
drivers/usb/host/xhci.c

@@ -1173,6 +1173,7 @@ static int xhci_configure_endpoint(struct xhci_hcd *xhci,
 		cmd_completion = &virt_dev->cmd_completion;
 		cmd_completion = &virt_dev->cmd_completion;
 		cmd_status = &virt_dev->cmd_status;
 		cmd_status = &virt_dev->cmd_status;
 	}
 	}
+	init_completion(cmd_completion);
 
 
 	if (!ctx_change)
 	if (!ctx_change)
 		ret = xhci_queue_configure_endpoint(xhci, in_ctx->dma,
 		ret = xhci_queue_configure_endpoint(xhci, in_ctx->dma,