linux/drivers
Matthew Garrett 85969df4a9 ASPM: Fix pcie devices with non-pcie children
commit c9651e70ad upstream.

Since 3.2.12 and 3.3, some systems are failing to boot with a BUG_ON.
Some other systems using the pata_jmicron driver fail to boot because no
disks are detected.  Passing pcie_aspm=force on the kernel command line
works around it.

The cause: commit 4949be1682 ("PCI: ignore pre-1.1 ASPM quirking when
ASPM is disabled") changed the behaviour of pcie_aspm_sanity_check() to
always return 0 if aspm is disabled, in order to avoid cases where we
changed ASPM state on pre-PCIe 1.1 devices.

This skipped the secondary function of pcie_aspm_sanity_check which was
to avoid us enabling ASPM on devices that had non-PCIe children, causing
trouble later on.  Move the aspm_disabled check so we continue to honour
that scenario.

Addresses https://bugzilla.kernel.org/show_bug.cgi?id=42979 and
          http://bugs.debian.org/665420

Reported-by: Romain Francoise <romain@orebokech.com> # kernel panic
Reported-by: Chris Holland <bandidoirlandes@gmail.com> # disk detection trouble
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Tested-by: Hatem Masmoudi <hatem.masmoudi@gmail.com> # Dell Latitude E5520
Tested-by: janek <jan0x6c@gmail.com> # pata_jmicron with JMB362/JMB363
[jn: with more symptoms in log message]
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-04-02 09:27:22 -07:00
..
accessibility
acpi ACPI / PM: Do not save/restore NVS on Asus K54C/K54HR 2012-03-12 10:32:57 -07:00
amba
ata pata_legacy: correctly mask recovery field for HT6560B 2012-04-02 09:27:13 -07:00
atm
auxdisplay
base PM / Driver core: leave runtime PM enabled during system shutdown 2012-03-19 08:57:44 -07:00
bcma
block block, sx8: fix pointer math issue getting fw version 2012-03-19 08:57:58 -07:00
bluetooth Bluetooth: btusb: fix bInterval for high/super speed isochronous endpoints 2012-04-02 09:27:20 -07:00
cdrom cdrom: use copy_to_user() without the underscores 2012-02-29 16:34:35 -08:00
char TPM: Zero buffer after copying to userspace 2011-10-03 11:40:58 -07:00
clk
clocksource
connector
cpufreq powernow-k8: Fix indexing issue 2012-02-13 11:06:13 -08:00
cpuidle
crypto crypto: mv_cesa - fix final callback not ignoring input data 2012-03-12 10:32:56 -07:00
dca
dio
dma at_hdmac: bugfix for enabling channel irq 2012-02-13 11:06:07 -08:00
edac i7core_edac: fixed typo in error count calculation 2011-08-29 13:29:06 -07:00
eisa
firewire firewire: ohci: fix too-early completion of IR multichannel buffers 2012-04-02 09:27:13 -07:00
firmware ibft: Fix finding IBFT ACPI table on UEFI 2011-12-21 12:57:45 -08:00
gpio gpio/pca953x: Fix warning of enabled interrupts in handler 2012-02-20 12:48:11 -08:00
gpu drm/i915: suspend fbdev device around suspend/hibernate 2012-04-02 09:27:20 -07:00
hid HID: add more hotkeys in Asus AIO keyboards 2012-04-02 09:27:12 -07:00
hwmon hwmon: (fam15h_power) Correct sign extension of running_avg_capture 2012-04-02 09:27:18 -07:00
hwspinlock hwspinlock/core: use a mutex to protect the radix tree 2011-11-11 09:36:31 -08:00
i2c i2c-algo-bit: Fix spurious SCL timeouts under heavy load 2012-03-19 08:57:59 -07:00
ide block: add and use scsi_blk_cmd_ioctl 2012-01-25 17:24:54 -08:00
idle intel_idle: fix API misuse 2012-01-25 17:24:56 -08:00
ieee802154
infiniband IB/iser: Post initial receive buffers before sending the final login request 2012-04-02 09:27:10 -07:00
input Input: ALPS - fix touchpad detection when buttons are pressed 2012-03-12 10:33:00 -07:00
isdn net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared 2011-08-15 18:31:38 -07:00
leds Revert "leds: save the delay values after a successful call to blink_set()" 2011-11-21 14:31:19 -08:00
lguest
macintosh
mca
md dm exception store: fix init error path 2012-04-02 09:27:19 -07:00
media pvrusb2: fix 7MHz & 8MHz DVB-T tuner support for HVR1900 rev D1F5 2012-04-02 09:27:18 -07:00
memstick
message
mfd mfd: Fix cs5535 section mismatch 2012-03-12 10:33:10 -07:00
misc cs5535-mfgpt: don't call __init function from __devinit 2012-03-12 10:33:03 -07:00
mmc mmc: sdhci-esdhc-imx: fix for mmc cards on i.MX5 2012-03-12 10:32:55 -07:00
mtd UBI: fix eraseblock picking criteria 2012-04-02 09:27:17 -07:00
net sky2: override for PCI legacy power management 2012-04-02 09:27:21 -07:00
nfc
nubus
of
oprofile oprofile: Fix uninitialized memory access when writing to writing to oprofilefs 2012-01-06 14:13:51 -08:00
parisc
parport
pci ASPM: Fix pcie devices with non-pcie children 2012-04-02 09:27:22 -07:00
pcmcia pcmcia: fix socket refcount decrementing on each resume 2012-02-13 11:06:10 -08:00
platform acer-wmi: No wifi rfkill on Lenovo machines 2012-03-19 08:57:45 -07:00
pnp PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB 2012-01-25 17:24:42 -08:00
power drivers/power/ds2780_battery.c: fix deadlock upon insertion and removal 2011-11-11 09:36:32 -08:00
pps
ps3
ptp ptp: Fix clock_getres() implementation 2011-12-21 12:57:36 -08:00
rapidio rapidio: fix use of non-compatible registers 2011-10-03 11:39:46 -07:00
regulator regulator: Fix setting selector in tps6524x set_voltage function 2012-03-19 08:57:58 -07:00
rtc rtc: Disable the alarm in the hardware (v2) 2012-04-02 09:27:10 -07:00
s390 compat: Re-add missing asm/compat.h include to fix compile breakage on s390 2012-03-19 08:57:59 -07:00
sbus
scsi osd_uld: Bump MAX_OSD_DEVICES from 64 to 1,048,576 2012-03-12 10:32:57 -07:00
sfi
sh
sn
spi spi/s3c64xx: Bug fix for SPI with different FIFO level 2011-07-06 15:03:08 +09:00
ssb ssb: fix init regression with SoCs 2012-01-06 14:13:48 -08:00
staging media: staging: lirc_serial: Do not assume error codes returned by request_irq() 2012-03-12 10:33:00 -07:00
target target: Fix 16-bit target ports for SET TARGET PORT GROUPS emulation 2012-04-02 09:27:12 -07:00
tc
telephony
thermal
tty serial: sh-sci: fix a race of DMA submit_tx on transfer 2012-04-02 09:27:22 -07:00
uio
usb USB: serial: mos7840: Fixed MCS7820 device attach problem 2012-04-02 09:27:08 -07:00
uwb
vhost
video backlight: fix typo in tosa_lcd.c 2012-04-02 09:27:19 -07:00
virtio virtio-pci: fix use after free 2011-11-21 14:31:14 -08:00
vlynq
w1 drivers/power/ds2780_battery.c: add a nolock function to w1 interface 2011-11-11 09:36:32 -08:00
watchdog watchdog: hpwdt: clean up set_memory_x call for 32 bit 2012-03-12 10:32:40 -07:00
xen xen/xenbus: Reject replies with payload > XENSTORE_PAYLOAD_MAX. 2012-01-25 17:24:41 -08:00
zorro zorro: Defer device_register() until all devices have been identified 2011-10-03 11:40:57 -07:00
Kconfig
Makefile