linux/Documentation
MUNEDA Takahiro 7570a333d8 PCI: Add pcie_hp=nomsi to disable MSI/MSI-X for pciehp driver
Add a parameter to avoid using MSI/MSI-X for PCIe native hotplug; it's
known to be buggy on some platforms.

In my environment, while shutting down, following stack trace is shown
sometimes.

  irq 16: nobody cared (try booting with the "irqpoll" option)
  Pid: 1081, comm: reboot Not tainted 3.2.0 #1
  Call Trace:
   <IRQ>  [<ffffffff810cec1d>] __report_bad_irq+0x3d/0xe0
   [<ffffffff810cee1c>] note_interrupt+0x15c/0x210
   [<ffffffff810cc485>] handle_irq_event_percpu+0xb5/0x210
   [<ffffffff810cc621>] handle_irq_event+0x41/0x70
   [<ffffffff810cf675>] handle_fasteoi_irq+0x55/0xc0
   [<ffffffff81015356>] handle_irq+0x46/0xb0
   [<ffffffff814fbe9d>] do_IRQ+0x5d/0xe0
   [<ffffffff814f146e>] common_interrupt+0x6e/0x6e
   [<ffffffff8106b040>] ? __do_softirq+0x60/0x210
   [<ffffffff8108aeb1>] ? hrtimer_interrupt+0x151/0x240
   [<ffffffff814fb5ec>] call_softirq+0x1c/0x30
   [<ffffffff810152d5>] do_softirq+0x65/0xa0
   [<ffffffff8106ae9d>] irq_exit+0xbd/0xe0
   [<ffffffff814fbf8e>] smp_apic_timer_interrupt+0x6e/0x99
   [<ffffffff814f9e5e>] apic_timer_interrupt+0x6e/0x80
   <EOI>  [<ffffffff814f0fb1>] ? _raw_spin_unlock_irqrestore+0x11/0x20
   [<ffffffff812629fc>] pci_bus_write_config_word+0x6c/0x80
   [<ffffffff81266fc2>] pci_intx+0x52/0xa0
   [<ffffffff8127de3d>] pci_intx_for_msi+0x1d/0x30
  [<ffffffff8127e4fb>] pci_msi_shutdown+0x7b/0x110
   [<ffffffff81269d34>] pci_device_shutdown+0x34/0x50
   [<ffffffff81326c4f>] device_shutdown+0x2f/0x140
   [<ffffffff8107b981>] kernel_restart_prepare+0x31/0x40
   [<ffffffff8107b9e6>] kernel_restart+0x16/0x60
   [<ffffffff8107bbfd>] sys_reboot+0x1ad/0x220
   [<ffffffff814f4b90>] ? do_page_fault+0x1e0/0x460
   [<ffffffff811942d0>] ? __sync_filesystem+0x90/0x90
   [<ffffffff8105c9aa>] ? __cond_resched+0x2a/0x40
   [<ffffffff814ef090>] ? _cond_resched+0x30/0x40
   [<ffffffff81169e17>] ? iterate_supers+0xb7/0xd0
   [<ffffffff814f9382>] system_call_fastpath+0x16/0x1b
  handlers:
  [<ffffffff8138a0f0>] usb_hcd_irq
  [<ffffffff8138a0f0>] usb_hcd_irq
  [<ffffffff8138a0f0>] usb_hcd_irq
  Disabling IRQ #16

An un-wanted interrupt is generated when PCI driver switches from
MSI/MSI-X to INTx while shutting down the device.  The interrupt does
not happen if MSI/MSI-X is not used on the device.
I confirmed that this problem does not happen if pcie_hp=nomsi was
specified and hotplug operation worked fine as usual.

v2: Automatically disable MSI/MSI-X against following device:
    PCI bridge: Integrated Device Technology, Inc. Device 807f (rev 02)
v3: Based on the review comment, combile the if statements.
v4: Removed module parameter.
    Move some code to build pciehp as a module.
    Move device specific code to driver/pci/quirks.c.
v5: Drop a device specific code until getting a vendor statement.

Reviewed-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: MUNEDA Takahiro <muneda.takahiro@jp.fujitsu.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2012-02-23 12:29:35 -08:00
..
ABI Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
DocBook docbook: fix sched source file names in device-drivers book 2012-01-23 08:44:54 -08:00
PCI doc: fix broken references 2011-09-27 18:08:04 +02:00
RCU docs: Additional LWN links to RCU API 2011-12-11 10:32:23 -08:00
accounting
acpi acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec 2012-01-18 01:14:17 -05:00
aoe
arm ARM: move iotable mappings within the vmalloc region 2011-11-26 19:21:26 -05:00
auxdisplay
blackfin doc: fix broken references 2011-09-27 18:08:04 +02:00
block Documentation: drop as block elevator reference in switching-sched.txt 2011-11-04 12:01:48 -07:00
blockdev cciss: auto engage SCSI mid layer at driver load time 2011-11-16 09:21:49 +01:00
cdrom doc: fix broken references 2011-09-27 18:08:04 +02:00
cgroups memcg: fix pgpgin/pgpgout documentation 2012-01-12 20:13:06 -08:00
connector
console
cpu-freq Doc: cpufreq: Fix typo and outdated line 2011-11-08 10:23:29 +01:00
cpuidle
cris
crypto
development-process Documentation: Update stable address 2011-12-12 14:14:31 -08:00
device-mapper dm log userspace: fix comment hyphens 2011-10-31 20:21:22 +00:00
devicetree Merge branch 'for-linus/i2c-33' of git://git.fluff.org/bjdooks/linux 2012-01-18 13:46:13 -08:00
driver-model lib: devres: add convenience function to remap a resource 2011-11-15 16:07:39 -08:00
dvb [media] dvb_get_firmware: updates for it913x 2011-12-11 09:00:48 -02:00
early-userspace
fault-injection fault-injection: update documentation with the mmc module param 2011-10-26 16:32:13 -04:00
fb fbdev: Add FOURCC-based format configuration API 2011-12-19 20:07:13 +00:00
filesystems Merge branch 'for-3.3' of git://linux-nfs.org/~bfields/linux 2012-01-14 12:26:41 -08:00
firmware_class
frv doc: fix broken references 2011-09-27 18:08:04 +02:00
hid
hwmon hwmon: (sysfs-interface) Update tempX_type attribute to be more generic 2012-01-16 22:51:48 +01:00
i2c i2c: Fix device name for 10-bit slave address 2011-11-23 11:33:07 +01:00
i2o
ia64
ide
infiniband
input Input: sentelic - document the latest hardware 2011-12-23 01:15:16 -08:00
ioctl NVMe: New driver 2011-11-04 15:52:51 -04:00
isdn
ja_JP Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2011-07-25 23:06:24 -07:00
kbuild kbuild: Add support for an "archheaders" target 2011-11-17 13:35:20 -08:00
kdump [S390] Add s390x description to Documentation/kdump/kdump.txt 2011-12-27 11:27:13 +01:00
ko_KR
laptops Documentation: thinkpad-acpi grammo fixes 2011-11-04 12:01:47 -07:00
leds Documentation: fix leds-class.txt duplicated word 2011-11-04 12:01:48 -07:00
m68k Documentation: add pointer to name_to_dev_t for root= values 2011-08-03 14:25:21 -10:00
make
mips
misc-devices
mmc mmc: core: Fixup delayed work clock gating patch 2012-01-11 23:58:43 -05:00
mn10300
mtd
namespaces
netlabel
networking bonding: document undocumented active_slave sysfs entry. 2011-12-26 20:09:35 -05:00
nfc
parisc
pcmcia
power PM / Documentation: Fix minor issue in freezing_of_tasks.txt 2012-01-19 23:22:49 +01:00
powerpc
pps
prctl
pti
ptp
rapidio RapidIO: documentation update 2011-11-02 16:07:02 -07:00
s390 [S390] Remove Kerntypes leftovers 2011-12-27 11:27:12 +01:00
scheduler sched: Add documentation for bandwidth control 2011-08-14 12:03:58 +02:00
scsi [SCSI] qla4xxx: Update license 2012-01-16 12:34:12 +04:00
security Merge branch 'master'; commit 'v3.2-rc2' into next 2011-11-16 12:39:48 +11:00
serial serial/documentation: fix documented name of DCD cpp symbol 2012-01-04 16:26:32 -08:00
sh
sound Merge branch 'topic/hda' into for-linus 2012-01-12 09:59:18 +01:00
sparc
spi doc: fix broken references 2011-09-27 18:08:04 +02:00
sysctl sysctl: add the kernel.ns_last_pid control 2012-01-12 20:13:11 -08:00
target target: tcm_mod_builder: small fixups 2011-12-14 11:38:25 +00:00
telephony
thermal thermal: Rename generate_netlink_event 2012-01-23 03:15:25 -05:00
timers doc: fix broken references 2011-09-27 18:08:04 +02:00
trace mm-tracepoint: fix documentation and examples 2012-01-10 16:30:41 -08:00
usb USB: update documentation for usbmon 2012-01-04 16:04:30 -08:00
vDSO Document the vDSO and add a reference parser 2011-07-14 17:57:09 -07:00
video4linux [media] V4L2 Spec: fix extended control documentation 2012-01-16 09:37:53 -02:00
virtual lguest: move the lguest tool to the tools directory 2012-01-12 15:44:47 +10:30
vm slub: document setting min order with debug_guardpage_minorder > 0 2012-01-12 20:13:04 -08:00
w1
watchdog watchdog: documentation: describe nowayout in coversion-guide 2012-01-06 15:26:14 +01:00
wimax
x86 x86-64, doc: Remove int 0xcc from entry_64.S documentation 2011-08-16 08:04:08 -07:00
zh_CN remove the messy code file Documentation/zh_CN/SubmitChecklist 2011-09-26 16:18:41 -07:00
.gitignore
00-INDEX Documentation: add Ramoops usage description 2011-08-13 18:34:03 -07:00
BUG-HUNTING
Changes
CodingStyle Documentation: update CodingStyle use of braces 2011-11-04 12:01:47 -07:00
DMA-API-HOWTO.txt Documentation/DMA-API-HOWTO.txt: fix misleading example 2011-07-26 16:49:45 -07:00
DMA-API.txt include/linux/dma-mapping.h: add dma_zalloc_coherent() 2011-11-02 16:07:02 -07:00
DMA-ISA-LPC.txt
DMA-attributes.txt
HOWTO Documentation: Update stable address 2011-12-12 14:14:31 -08:00
IPMI.txt
IRQ-affinity.txt
IRQ.txt
Intel-IOMMU.txt
Makefile
ManagementStyle
SAK.txt
SM501.txt
SecurityBugs
SubmitChecklist Documentation/SubmitChecklist: add RCU debug config options 2011-07-25 20:57:17 -07:00
SubmittingDrivers Documentation: SubmittingDrivers: fix Linus's git tree URL 2011-08-13 18:34:03 -07:00
SubmittingPatches Documentation: fix spelling error in SubmittingPatches 2011-08-13 18:34:02 -07:00
VGA-softcursor.txt
applying-patches.txt
atomic_ops.txt doc: Add load/store guarantees to Documentation/atomic-ops.txt 2011-12-11 10:31:58 -08:00
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
bus-virt-phys-mapping.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
cachetlb.txt
circular-buffers.txt
coccinelle.txt coccinelle.txt: update documentation to include M= option 2012-01-14 22:25:56 +01:00
cpu-hotplug.txt
cpu-load.txt
cputopology.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt vhost-net: add module alias (v2.1) 2012-01-13 10:12:23 -08:00
digsig.txt crypto: digital signature verification support 2011-11-09 12:10:37 +02:00
dma-buf-sharing.txt dma-buf: Documentation update for Kconfig select 2012-01-13 10:27:33 +00:00
dmaengine.txt DMAEngine: Define interleaved transfer request api 2011-11-18 12:16:24 +05:30
dontdiff [S390] Remove Kerntypes leftovers 2011-12-27 11:27:12 +01:00
dynamic-debug-howto.txt
edac.txt
eisa.txt
email-clients.txt Documentation: email-clients: Add better Thunderbird information 2011-08-13 18:34:03 -07:00
feature-removal-schedule.txt Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-01-18 12:53:54 -08:00
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt
gpio.txt
highuid.txt
hw_random.txt
hwspinlock.txt hwspinlock/core: register a bank of hwspinlocks in a single API call 2011-09-21 19:45:34 +03:00
init.txt
initrd.txt
intel_txt.txt
io-mapping.txt
io_ordering.txt
iostats.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
kernel-parameters.txt PCI: Add pcie_hp=nomsi to disable MSI/MSI-X for pciehp driver 2012-02-23 12:29:35 -08:00
kmemcheck.txt
kmemleak.txt kmemleak: Handle percpu memory allocation 2011-12-02 16:12:42 +00:00
kobject.txt
kprobes.txt
kref.txt
ldm.txt
local_ops.txt
lockdep-design.txt lockdep: Update documentation for lock-class leak detection 2011-12-11 10:31:23 -08:00
lockstat.txt
logo.gif
logo.txt
magic-number.txt
mca.txt
md.txt md: create externally visible flags for supporting hot-replace. 2011-12-23 10:17:51 +11:00
media-framework.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
memory-barriers.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
memory-hotplug.txt
memory.txt
mono.txt
mutex-design.txt
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt module,bug: Add TAINT_OOT_MODULE flag for modules not built in-tree 2011-11-07 07:54:42 +10:30
padata.txt
parport-lowlevel.txt
parport.txt
pi-futex.txt
pinctrl.txt pinctrl: some typo fixes 2012-01-03 09:10:08 +01:00
pnp.txt
preempt-locking.txt
printk-formats.txt
prio_tree.txt
ramoops.txt Documentation: add Ramoops usage description 2011-08-13 18:34:03 -07:00
rbtree.txt Documentation: Update augmented rbtree documentation 2011-07-24 10:03:05 -07:00
rfkill.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
robust-futex-ABI.txt
robust-futexes.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
sparse.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt Update email address for stable patch submission 2011-10-18 13:58:59 -07:00
svga.txt
sysfs-rules.txt
sysrq.txt
unaligned-memory-access.txt
unicode.txt
unshare.txt
vgaarbiter.txt misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
video-output.txt
volatile-considered-harmful.txt
workqueue.txt
xz.txt
zorro.txt