aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/probe.c
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2010-06-17 20:16:36 +0100
committerJesse Barnes <jbarnes@virtuousgeek.org>2010-07-30 09:29:34 -0700
commitfcd097f31a6ee207cc0c3da9cccd2a86d4334785 (patch)
tree3bd2658926e691d0eab23651e45832c2714d85f6 /drivers/pci/probe.c
parentPCI: Default PCIe ASPM control to on and require !EMBEDDED to disable (diff)
downloadlinux-dev-fcd097f31a6ee207cc0c3da9cccd2a86d4334785.tar.xz
linux-dev-fcd097f31a6ee207cc0c3da9cccd2a86d4334785.zip
PCI: MSI: Remove unsafe and unnecessary hardware access
During suspend on an SMP system, {read,write}_msi_msg_desc() may be called to mask and unmask interrupts on a device that is already in a reduced power state. At this point memory-mapped registers including MSI-X tables are not accessible, and config space may not be fully functional either. While a device is in a reduced power state its interrupts are effectively masked and its MSI(-X) state will be restored when it is brought back to D0. Therefore these functions can simply read and write msi_desc::msg for devices not in D0. Further, read_msi_msg_desc() should only ever be used to update a previously written message, so it can always read msi_desc::msg and never needs to touch the hardware. Tested-by: "Michael Chan" <mchan@broadcom.com> Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci/probe.c')
0 files changed, 0 insertions, 0 deletions