public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
	Zwane Mwaikambo <zwane@arm.linux.org.uk>,
	"Theodore Ts'o" <tytso@mit.edu>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Dave Jones <davej@redhat.com>,
	Chuck Wolber <chuckw@quantumlinux.com>,
	Chris Wedgwood <reviews@ml.cw.f00f.org>,
	Michael Krufky <mkrufky@linuxtv.org>,
	Chuck Ebbert <cebbert@redhat.com>,
	Domenico Andreoli <cavokz@gmail.com>, Willy Tarreau <w@1wt.eu>,
	Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
	Jake Edge <jake@lwn.net>, Eugene Teo <eteo@redhat.com>,
	torvalds@linux-foundation.org, akpm@linux-foundation.org,
	alan@lxorguk.ukuu.org.uk, Alan Stern <stern@rowland.harvard.edu>,
	David Brownell <dbrownell@users.sourceforge.net>
Subject: [patch 25/33] USB: EHCI: fix remote-wakeup regression
Date: Mon, 4 Aug 2008 13:16:12 -0700	[thread overview]
Message-ID: <20080804201612.GZ1139@suse.de> (raw)
In-Reply-To: <20080804201321.GA1139@suse.de>

[-- Attachment #1: usb-ehci-fix-remote-wakeup-regression.patch --]
[-- Type: text/plain, Size: 2391 bytes --]

2.6.25-stable review patch.  If anyone has any objections, please let us
know.

------------------

From: Alan Stern <stern@rowland.harvard.edu>

commit d1f114d12bb4db3147e1b1342ae31083c5a79c84 upstream

This patch (as1097) fixes a bug in the remote-wakeup handling in
ehci-hcd.  The driver currently does not keep track of whether the
change-suspend feature is enabled for each port; the feature is
automatically reset the first time it is read.  But recent changes to
the hub driver require that the feature be read at least twice in
order to work properly.

A bit-vector is added for storing the change-suspend feature values.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/usb/host/ehci-hub.c |    6 ++++--
 drivers/usb/host/ehci.h     |    2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -97,6 +97,8 @@ struct ehci_hcd {			/* one per controlle
 			dedicated to the companion controller */
 	unsigned long		owned_ports;		/* which ports are
 			owned by the companion during a bus suspend */
+	unsigned long		port_c_suspend;		/* which ports have
+			the change-suspend feature turned on */
 
 	/* per-HC memory pools (could be per-bus, but ...) */
 	struct dma_pool		*qh_pool;	/* qh per active urb */
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -621,7 +621,7 @@ static int ehci_hub_control (
 			}
 			break;
 		case USB_PORT_FEAT_C_SUSPEND:
-			/* we auto-clear this feature */
+			clear_bit(wIndex, &ehci->port_c_suspend);
 			break;
 		case USB_PORT_FEAT_POWER:
 			if (HCS_PPC (ehci->hcs_params))
@@ -700,7 +700,7 @@ static int ehci_hub_control (
 			/* resume completed? */
 			else if (time_after_eq(jiffies,
 					ehci->reset_done[wIndex])) {
-				status |= 1 << USB_PORT_FEAT_C_SUSPEND;
+				set_bit(wIndex, &ehci->port_c_suspend);
 				ehci->reset_done[wIndex] = 0;
 
 				/* stop resume signaling */
@@ -777,6 +777,8 @@ static int ehci_hub_control (
 			status |= 1 << USB_PORT_FEAT_RESET;
 		if (temp & PORT_POWER)
 			status |= 1 << USB_PORT_FEAT_POWER;
+		if (test_bit(wIndex, &ehci->port_c_suspend))
+			status |= 1 << USB_PORT_FEAT_C_SUSPEND;
 
 #ifndef	EHCI_VERBOSE_DEBUG
 	if (status & ~0xffff)	/* only if wPortChange is interesting */

-- 

  parent reply	other threads:[~2008-08-04 20:30 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20080804200515.110033151@mini.kroah.org>
2008-08-04 20:13 ` [patch 00/33] 2.6.25-stable review cycle Greg KH
2008-08-04 20:14   ` [patch 01/33] romfs_readpage: dont report errors for pages beyond i_size Greg KH
2008-08-04 20:14   ` [patch 02/33] x86: ioremap of 64-bit resource on 32-bit kernel fix Greg KH
2008-08-04 20:14   ` [patch 03/33] SCSI: megaraid_mbox: fix Dell CERC firmware problem Greg KH
2008-08-04 20:14   ` [patch 04/33] return to old errno choice in mkdir() et.al Greg KH
2008-08-04 20:14   ` [patch 05/33] POWERPC: PS3: Add time include to lpm Greg KH
2008-08-04 20:14   ` [patch 06/33] NFS: Ensure we zap only the access and acl caches when setting new acls Greg KH
2008-08-04 20:14   ` [patch 07/33] jbd: fix the way the b_modified flag is cleared Greg KH
2008-08-04 20:15   ` [patch 08/33] jbd: fix race between free buffer and commit transaction Greg KH
2008-08-04 20:15   ` [patch 09/33] jbd: fix possible journal overflow issues Greg KH
2008-08-04 20:15   ` [patch 10/33] Input: i8042 - retry failed CTR writes when resuming Greg KH
2008-08-04 20:15   ` [patch 11/33] Input: i8042 - add Intel D845PESV to nopnp list Greg KH
2008-08-04 20:15   ` [patch 12/33] Input: i8042 - add Gericom Bellagio to nomux blacklist Greg KH
2008-08-04 20:15   ` [patch 13/33] Input: i8042 - add Fujitsu-Siemens Amilo Pro V2030 to nomux table Greg KH
2008-08-04 20:15   ` [patch 14/33] Input: i8042 - add Fujitsu-Siemens Amilo Pro 2010 to nomux list Greg KH
2008-08-04 20:15   ` [patch 15/33] Input: i8042 - add Acer Aspire 1360 to nomux blacklist Greg KH
2008-08-04 20:15   ` [patch 16/33] FAT_VALID_MEDIA(): remove pointless test Greg KH
2008-08-04 20:15   ` [patch 17/33] fat: detect media without partition table correctly Greg KH
2008-08-04 20:15   ` [patch 18/33] Bluetooth: Signal user-space for HIDP and BNEP socket errors Greg KH
2008-08-04 20:15   ` [patch 19/33] bay: exit if notify handler cannot be installed Greg KH
2008-08-04 20:15   ` [patch 20/33] ath5k: Use software encryption for now Greg KH
2008-08-04 20:16   ` [patch 21/33] Add compat handler for PTRACE_GETSIGINFO Greg KH
2008-08-04 20:16   ` [patch 22/33] ACPI: Reject below-freezing temperatures as invalid critical temperatures Greg KH
2008-08-04 20:16   ` [patch 23/33] ACPI: update thermal temperature Greg KH
2008-08-04 20:16   ` [patch 24/33] Input: appletouch - implement reset-resume logic Greg KH
2008-08-04 20:16   ` Greg KH [this message]
2008-08-04 20:16   ` [patch 26/33] pci: VT3336 cant do MSI either Greg KH
2008-08-04 20:16   ` [patch 27/33] ALSA: ac97 - Fix ASUS A9T laptop output Greg KH
2008-08-04 20:16   ` [patch 28/33] ALSA: Add more fallbacks to OSS PHONEOUT mixer map Greg KH
2008-08-04 20:16   ` [patch 29/33] ALSA: emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2 Greg KH
2008-08-04 20:16   ` [patch 30/33] ALSA: Fix Oops with usb-audio reconnection Greg KH
2008-08-04 20:16   ` [patch 31/33] ALSA: hda - Add missing Thinkpad Z60m support Greg KH
2008-08-04 20:16   ` [patch 32/33] ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode Greg KH
2008-08-04 20:16   ` [patch 33/33] vfs: fix lookup on deleted directory 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=20080804201612.GZ1139@suse.de \
    --to=gregkh@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=cavokz@gmail.com \
    --cc=cebbert@redhat.com \
    --cc=chuckw@quantumlinux.com \
    --cc=davej@redhat.com \
    --cc=dbrownell@users.sourceforge.net \
    --cc=eteo@redhat.com \
    --cc=jake@lwn.net \
    --cc=jmforbes@linuxtx.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkrufky@linuxtv.org \
    --cc=rbranco@la.checkpoint.com \
    --cc=rdunlap@xenotime.net \
    --cc=reviews@ml.cw.f00f.org \
    --cc=stable@kernel.org \
    --cc=stern@rowland.harvard.edu \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=w@1wt.eu \
    --cc=zwane@arm.linux.org.uk \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox