From: Sergei Shtylyov <sshtylyov@mvista.com>
To: Greg KH <gregkh@suse.de>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org,
linux-usb@vger.kernel.org,
Sarah Sharp <sarah.a.sharp@linux.intel.com>,
stable@kernel.org, Andiry Xu <andiry.xu@amd.com>,
Randy Dunlap <rdunlap@xenotime.net>
Subject: Re: [patch 2/3] USB: xhci: Set change bit when warm reset change is set.
Date: Tue, 20 Sep 2011 15:22:07 +0400 [thread overview]
Message-ID: <4E78775F.9020501@ru.mvista.com> (raw)
In-Reply-To: <20110919230833.469891151@clark.kroah.org>
Hello.
On 20-09-2011 3:05, Greg KH wrote:
From: line is missing?
> Sometimes, when a USB 3.0 device is disconnected, the Intel Panther Point
> xHCI host controller will report a link state change with the state set
> to "SS.Inactive". This causes the xHCI host controller to issue a warm
> port reset, which doesn't finish before the USB core times out while
> waiting for it to complete.
> When the warm port reset does complete, and the xHC gives back a port
> status change event, the xHCI driver kicks khubd. However, it fails to
> set the bit indicating there is a change event for that port because the
> logic in xhci-hub.c doesn't check for the warm port reset bit.
> After that, the warm port status change bit is never cleared by the USB
> core, and the xHC stops reporting port status change bits. (The xHCI spec
> says it shouldn't report more port events until all change bits are
> cleared.) This means any port changes when a new device is connected will
> never be reported, and the port will seem "dead" until the xHCI driver is
> unloaded and reloaded, or the computer is rebooted. Fix this by making
> the xHCI driver set the port change bit when a warm port reset change bit
> is set.
> A better solution would be to make the USB core handle warm port reset in
> differently, merging the current code with the standard port reset code
> that does an incremental backoff on the timeout, and tries to complete the
> port reset two more times before giving up. That more complicated fix
> will be merged next window, and this fix will be backported to stable.
> This should be backported to kernels as old as 3.0, since that was the
> first kernel with commit a11496ebf37534177d67222285e8debed7a39788
> "xHCI: warm reset support".
> Signed-off-by: Sarah Sharp<sarah.a.sharp@linux.intel.com>
> Cc: stable@kernel.org
> Signed-off-by: Greg Kroah-Hartman<gregkh@suse.de>
WBR, Sergei
next prev parent reply other threads:[~2011-09-20 11:22 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-19 23:09 [patch 0/3] Staging and USB fixes for 3.1 Greg KH
2011-09-19 23:05 ` [patch 1/3] staging: fix comedi build when ISA_DMA_API is enabled but COMEDI_PCI is not enabled Greg KH
2011-09-19 23:05 ` [patch 2/3] USB: xhci: Set change bit when warm reset change is set Greg KH
2011-09-20 11:22 ` Sergei Shtylyov [this message]
2011-09-20 12:58 ` Greg KH
2011-09-19 23:05 ` [patch 3/3] USB: xHCI: prevent infinite loop when processing MSE event Greg KH
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=4E78775F.9020501@ru.mvista.com \
--to=sshtylyov@mvista.com \
--cc=andiry.xu@amd.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=rdunlap@xenotime.net \
--cc=sarah.a.sharp@linux.intel.com \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
/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.