All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: jin.can.zhuang@intel.com, gregkh@linuxfoundation.org,
	stern@rowland.harvard.edu, dan.j.williams@intel.com,
	pmladek@suse.cz, peter.chen@freescale.com,
	mathias.nyman@linux.intel.com
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Revert "usb: Reset USB-3 devices on USB-3 link bounce"
Date: Mon, 26 Jan 2015 15:37:18 +0100	[thread overview]
Message-ID: <54C6511E.2000608@redhat.com> (raw)
In-Reply-To: <20150126153039.GA18043@intel.com>

Hi,

On 26-01-15 16:30, Zhuang Jin Can wrote:
> This revert a82b76f7fa6154e8ab2d8071842a3e38b9c0d0ff.
>
> The commit causes an extra reset in remote wakeup as described in:
> http://www.spinics.net/lists/linux-usb/msg119080.html
>
> Signed-off-by: Zhuang Jin Can <jin.can.zhuang@intel.com>

No objection from me (*) against reverting this, as it was fixing a
rather obscure (but non the less real) issue, and the issue it
causes seems to be a bigger one.

Regards,

Hans

*) I'm the author of the original patch


> ---
>   drivers/usb/core/hub.c |   34 +++++++++-------------------------
>   1 file changed, 9 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> index aeb50bb..89d009a 100644
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -4882,7 +4882,7 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
>   static void port_event(struct usb_hub *hub, int port1)
>   		__must_hold(&port_dev->status_lock)
>   {
> -	int connect_change, reset_device = 0;
> +	int connect_change;
>   	struct usb_port *port_dev = hub->ports[port1 - 1];
>   	struct usb_device *udev = port_dev->child;
>   	struct usb_device *hdev = hub->hdev;
> @@ -4970,30 +4970,14 @@ static void port_event(struct usb_hub *hub, int port1)
>   			if (hub_port_reset(hub, port1, NULL,
>   					HUB_BH_RESET_TIME, true) < 0)
>   				hub_port_disable(hub, port1, 1);
> -		} else
> -			reset_device = 1;
> -	}
> -
> -	/*
> -	 * On disconnect USB3 protocol ports transit from U0 to
> -	 * SS.Inactive to Rx.Detect. If this happens a warm-
> -	 * reset is not needed, but a (re)connect may happen
> -	 * before hub_wq runs and sees the disconnect, and the
> -	 * device may be an unknown state.
> -	 *
> -	 * If the port went through SS.Inactive without hub_wq
> -	 * seeing it the C_LINK_STATE change flag will be set,
> -	 * and we reset the dev to put it in a known state.
> -	 */
> -	if (reset_device || (udev && hub_is_superspeed(hub->hdev)
> -				&& (portchange & USB_PORT_STAT_C_LINK_STATE)
> -				&& (portstatus & USB_PORT_STAT_CONNECTION))) {
> -		usb_unlock_port(port_dev);
> -		usb_lock_device(udev);
> -		usb_reset_device(udev);
> -		usb_unlock_device(udev);
> -		usb_lock_port(port_dev);
> -		connect_change = 0;
> +		} else {
> +			usb_unlock_port(port_dev);
> +			usb_lock_device(udev);
> +			usb_reset_device(udev);
> +			usb_unlock_device(udev);
> +			usb_lock_port(port_dev);
> +			connect_change = 0;
> +		}
>   	}
>
>   	if (connect_change)
>

      reply	other threads:[~2015-01-26 14:37 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-26 15:30 [PATCH] Revert "usb: Reset USB-3 devices on USB-3 link bounce" Zhuang Jin Can
2015-01-26 14:37 ` Hans de Goede [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54C6511E.2000608@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=dan.j.williams@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jin.can.zhuang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@linux.intel.com \
    --cc=peter.chen@freescale.com \
    --cc=pmladek@suse.cz \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.