Sarah Sharp
159e1fcc9a
xhci: Don't write zeroed pointers to xHC registers.
...
When xhci_mem_cleanup() is called, we can't be sure if the xHC is
actually halted. We can ask the xHC to halt by writing to the RUN bit
in the command register, but that might timeout due to a HW hang.
If the host controller is still running, we should not write zeroed
values to the event ring dequeue pointers or base tables, the DCBAA
pointers, or the command ring pointers. Eric Fu reports his VIA VL800
host accesses the event ring pointers after a failed register restore on
resume from suspend. The hypothesis is that the host never actually
halted before the register write to change the event ring pointer to
zero.
Remove all writes of zeroed values to pointer registers in
xhci_mem_cleanup(). Instead, make all callers of the function reset the
host controller first, which will reset those registers to zero.
xhci_mem_init() is the only caller that doesn't first halt and reset the
host controller before calling xhci_mem_cleanup().
This should be backported to kernels as old as 2.6.32.
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Tested-by: Elric Fu <elricfu1@gmail.com>
Cc: stable@vger.kernel.org
2012-04-11 08:28:55 -07:00
..
accessibility
acpi
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
2012-04-06 19:56:04 -07:00
amba
ata
atm
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
auxdisplay
base
regmap: A couple of small fixes for 3.4
2012-04-07 09:56:00 -07:00
bcma
block
Two fixes for regressions:
2012-04-06 17:54:53 -07:00
bluetooth
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
cdrom
char
Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
2012-04-06 17:56:20 -07:00
clk
clocksource
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2012-03-29 16:53:48 -07:00
connector
cpufreq
ARM: SoC fixes for 3.4-rc2
2012-04-05 22:13:39 -07:00
cpuidle
Merge branches 'idle-fix' and 'misc' into release
2012-04-06 21:48:59 -04:00
crypto
dca
devfreq
ARM: global cleanups
2012-03-27 16:03:32 -07:00
dio
dma
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
edac
Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
2012-04-06 17:56:20 -07:00
eisa
firewire
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
firmware
gpio
gpio: tegra: Iterate over the correct number of banks
2012-04-04 13:13:18 -06:00
gpu
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
hid
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
hsi
hv
hwmon
hwmon: (ad7314) Adds missing spi_dev initialization
2012-04-03 17:08:28 -07:00
hwspinlock
i2c
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07:00
ide
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
idle
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
ieee802154
infiniband
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2012-03-29 23:17:44 -07:00
iommu
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
isdn
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2012-04-02 17:53:39 -07:00
leds
MFD changes for 3.4
2012-03-28 13:56:35 -07:00
lguest
macintosh
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
mca
md
md/raid1,raid10: don't compare excess byte during consistency check.
2012-04-03 15:39:23 +10:00
media
ARM: cleanups of io includes
2012-03-29 18:02:10 -07:00
memstick
message
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07:00
mfd
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
misc
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
mmc
mmc: use really long write timeout to deal with crappy cards
2012-04-05 20:32:34 -04:00
mtd
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
net
Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
2012-04-06 17:56:20 -07:00
nfc
nubus
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
of
GPIO changes for v3.4
2012-03-28 14:08:46 -07:00
oprofile
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
parisc
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07:00
parport
pci
Two fixes for regressions:
2012-04-06 17:54:53 -07:00
pcmcia
Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia
2012-03-29 16:00:48 -07:00
pinctrl
platform
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
2012-03-30 16:45:39 -07:00
pnp
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
2012-03-30 16:45:39 -07:00
power
Various small bugfixes and enhancements, plus two new drivers:
2012-03-30 16:09:02 -07:00
pps
ps3
ptp
rapidio
regulator
regulator: Fixes for -rc1
2012-04-04 10:09:30 -07:00
remoteproc
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
rpmsg
rtc
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
s390
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07:00
sbus
Remove all #inclusions of asm/system.h
2012-03-28 18:30:03 +01:00
scsi
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
sfi
sh
SuperH updates for 3.4 merge window
2012-03-30 00:09:17 -07:00
sn
spi
Merge branch 'akpm' (Andrew's patch-bomb)
2012-04-05 15:30:34 -07:00
ssb
staging
Documentation: remove references to /etc/modprobe.conf
2012-03-30 16:03:15 -07:00
target
tcm_fc: Do not free tpg structure during wq allocation failure
2012-04-06 18:57:05 -07:00
tc
thermal
tty
SuperH updates for 3.4-rc1
2012-04-07 09:52:46 -07:00
uio
usb
xhci: Don't write zeroed pointers to xHC registers.
2012-04-11 08:28:55 -07:00
uwb
simple_open: automatically convert to simple_open()
2012-04-05 15:25:50 -07:00
vhost
video
ARM: SoC fixes for 3.4-rc2
2012-04-05 22:13:39 -07:00
virt
virtio
virtio-pci: switch to PM ops macro to initialise PM functions
2012-03-31 08:09:51 +05:30
vlynq
w1
watchdog
ARM: cleanups of io includes
2012-03-29 18:02:10 -07:00
xen
Two fixes for regressions:
2012-04-06 17:54:53 -07:00
zorro
Kconfig
Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi
2012-04-02 09:50:40 -07:00
Makefile
Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi
2012-04-02 09:50:40 -07:00