Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1697783

Re: [PATCH v2 5/5] usb: xhci: Handle USB transaction error on address command

From Felipe Balbi <felipe.balbi@linux.intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2 5/5] usb: xhci: Handle USB transaction error on address command
Date 2017-07-27 10:00 +0200
Message-ID <u7LS9-3l2-1@gated-at.bofh.it> (permalink)
References <u7GIN-em-3@gated-at.bofh.it> <u7GIN-em-17@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

Hi,

Lu Baolu <baolu.lu@linux.intel.com> writes:
> Xhci driver handles USB transaction errors on transfer events,
> but transaction errors are possible on address device command
> completion events as well.
>
> The xHCI specification (section 4.6.5) says: A USB Transaction
> Error Completion Code for an Address Device Command may be due
> to a Stall response from a device. Software should issue a Disable
> Slot Command for the Device Slot then an Enable Slot Command to
> recover from this error.
>
> This patch handles USB transaction errors on address command
> completion events. The related discussion threads can be found
> through below links.
>
> http://marc.info/?l=linux-usb&m=149362010728921&w=2
> http://marc.info/?l=linux-usb&m=149252752825755&w=2
>
> Suggested-by: Mathias Nyman <mathias.nyman@linux.intel.com>
> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
> ---
>  drivers/usb/host/xhci.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
> index d6b728d..95780f8 100644
> --- a/drivers/usb/host/xhci.c
> +++ b/drivers/usb/host/xhci.c
> @@ -3822,6 +3822,11 @@ static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev,
>  		break;
>  	case COMP_USB_TRANSACTION_ERROR:
>  		dev_warn(&udev->dev, "Device not responding to setup %s.\n", act);
> +
> +		ret = xhci_disable_slot(xhci, udev->slot_id);
> +		if (!ret)
> +			xhci_alloc_dev(hcd, udev);

aren't you leaking previously allocated virt_dev ?

-- 
balbi

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 0/5] usb: xhci: Handle USB transaction error on address command Lu Baolu <baolu.lu@linux.intel.com> - 2017-07-27 04:30 +0200
  [PATCH v2 5/5] usb: xhci: Handle USB transaction error on address command Lu Baolu <baolu.lu@linux.intel.com> - 2017-07-27 04:30 +0200
    Re: [PATCH v2 5/5] usb: xhci: Handle USB transaction error on address command Felipe Balbi <felipe.balbi@linux.intel.com> - 2017-07-27 10:00 +0200
      Re: [PATCH v2 5/5] usb: xhci: Handle USB transaction error on address  command Lu Baolu <baolu.lu@linux.intel.com> - 2017-07-27 11:00 +0200
  [PATCH v2 3/5] usb: xhci: Fix memory leak when xhci_disable_slot() returns error Lu Baolu <baolu.lu@linux.intel.com> - 2017-07-27 04:30 +0200

csiph-web