linux/arch/powerpc/kernel
Mike Qiu 9e5c6e5a3b powerpc/eeh: Wrong place to call pci_get_slot()
pci_get_slot() is called with hold of PCI bus semaphore and it's not
safe to be called in interrupt context. However, we possibly checks
EEH error and calls the function in interrupt context. To avoid using
pci_get_slot(), we turn into device tree for fetching location code.
Otherwise, we might run into WARN_ON() as following messages indicate:

 WARNING: at drivers/pci/search.c:223
 CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.16.0-rc3+ #72
 task: c000000001367af0 ti: c000000001444000 task.ti: c000000001444000
 NIP: c000000000497b70 LR: c000000000037530 CTR: 000000003003d114
 REGS: c000000001446fa0 TRAP: 0700   Not tainted  (3.16.0-rc3+)
 MSR: 9000000000029032 <SF,HV,EE,ME,IR,DR,RI>  CR: 48002422  XER: 20000000
 CFAR: c00000000003752c SOFTE: 0
   :
 NIP [c000000000497b70] .pci_get_slot+0x40/0x110
 LR [c000000000037530] .eeh_pe_loc_get+0x150/0x190
 Call Trace:
   .of_get_property+0x30/0x60 (unreliable)
   .eeh_pe_loc_get+0x150/0x190
   .eeh_dev_check_failure+0x1b4/0x550
   .eeh_check_failure+0x90/0xf0
   .lpfc_sli_check_eratt+0x504/0x7c0 [lpfc]
   .lpfc_poll_eratt+0x64/0x100 [lpfc]
   .call_timer_fn+0x64/0x190
   .run_timer_softirq+0x2cc/0x3e0

Cc: stable@vger.kernel.org
Signed-off-by: Mike Qiu <qiudayu@linux.vnet.ibm.com>
Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2014-08-05 15:41:07 +10:00
..
vdso32 powerpc/booke64: Use SPRG7 for VDSO 2014-03-19 19:57:14 -05:00
vdso64 powerpc/booke64: Use SPRG7 for VDSO 2014-03-19 19:57:14 -05:00
.gitignore
align.c KVM: PPC: BOOK3S: Remove open coded make_dsisr in alignment handler 2014-05-30 14:26:25 +02:00
asm-offsets.c powerpc: Remove STAB code 2014-07-28 14:10:22 +10:00
audit.c
btext.c
cacheinfo.c powerpc/pseries: Update dynamic cache nodes for suspend/resume operation 2014-03-07 15:54:49 +11:00
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/powernv: Enable POWER8 doorbell IPIs 2014-06-11 17:05:12 +10:00
cpu_setup_ppc970.S
cputable.c powerpc: Remove CLASSIC_PPC 2014-07-28 14:11:22 +10:00
crash_dump.c powerpc/crashdump : Fix page frame number check in copy_oldmem_page 2014-02-28 18:06:25 +11:00
crash.c arch,powerpc: Convert smp_mb__*() 2014-04-18 14:20:41 +02:00
dbell.c
dma-iommu.c powerpc/iommu: Update the generic code to use dynamic iommu page sizes 2013-12-30 14:17:19 +11:00
dma-swiotlb.c
dma.c powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
eeh_cache.c
eeh_dev.c
eeh_driver.c powerpc/powernv: Fix killed EEH event 2014-06-11 17:04:33 +10:00
eeh_event.c powerpc/powernv: Fix killed EEH event 2014-06-11 17:04:33 +10:00
eeh_pe.c powerpc/eeh: Wrong place to call pci_get_slot() 2014-08-05 15:41:07 +10:00
eeh_sysfs.c powerpc/eeh: Skip eeh sysfs when eeh is disabled 2014-06-05 13:20:38 +10:00
eeh.c powerpc/eeh: EEH support for VFIO PCI device 2014-08-05 15:28:48 +10:00
entry_32.S
entry_64.S powerpc: Remove MMU_FTR_SLB 2014-07-28 14:10:23 +10:00
epapr_hcalls.S
epapr_paravirt.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
exceptions-64e.S powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00
exceptions-64s.S powerpc: Remove misleading DISABLE_INTS 2014-07-28 14:11:24 +10:00
fadump.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
firmware.c
fpu.S powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
fsl_booke_entry_mapping.S powerpc: enable the relocatable support for the fsl booke 32bit kernel 2014-01-09 17:52:16 -06:00
ftrace.c powerpc/ftrace: Use pr_fmt() to namespace error messages 2014-06-24 14:05:50 +10:00
head_8xx.S powerpc/8xx: Fixing issue with CONFIG_PIN_TLB 2013-10-28 21:11:21 -05:00
head_32.S
head_40x.S powerpc: Remove check for CONFIG_SERIAL_TEXT_DEBUG 2014-06-11 16:31:21 +10:00
head_44x.S
head_64.S Merge remote-tracking branch 'scott/next' into next 2014-08-05 14:13:41 +10:00
head_booke.h
head_fsl_booke.S powerpc/fsl_booke: smp support for booting a relocatable kernel above 64M 2014-01-09 17:52:18 -06:00
hw_breakpoint.c powerpc: Fix smp_processor_id() in preemptible splat in set_breakpoint 2014-05-20 10:54:06 +10:00
ibmebus.c PPC: ibmebus: convert bus code to use bus_groups 2013-09-26 15:49:42 -07:00
idle_6xx.S
idle_book3e.S powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
idle_e500.S
idle_power4.S powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
idle_power7.S powerpc/powernv: Check for IRQHAPPENED before sleeping 2014-07-11 12:55:06 +10:00
idle.c
io-workarounds.c
io.c
iomap.c powerpc/kerenl: Enable EEH for IO accessors 2014-06-24 12:43:13 +10:00
iommu.c powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
irq.c powerpc: update comments for generic idle conversion 2014-06-06 16:08:18 -07:00
isa-bridge.c
jump_label.c
kgdb.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
kprobes.c powerpc/kprobes: Fix jprobes on ABI v2 (LE) 2014-06-24 14:05:55 +10:00
kvm_emul.S
kvm.c At over 200 commits, covering almost all supported architectures, this 2014-06-04 08:47:12 -07:00
l2cr_6xx.S
legacy_serial.c powerpc/serial: Use saner flags when creating legacy ports 2014-06-05 13:20:36 +10:00
machine_kexec_32.c
machine_kexec_64.c powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST mode 2014-05-28 13:24:26 +10:00
machine_kexec.c powerpc: Fix endian issues in kexec and crash dump code 2014-02-11 11:24:52 +11:00
Makefile powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00
mce_power.c powerpc/book3s: Recover from MC in sapphire on SCOM read via MMIO. 2014-03-07 15:52:10 +11:00
mce.c powerpc/book3s: Recover from MC in sapphire on SCOM read via MMIO. 2014-03-07 15:52:10 +11:00
misc_32.S powerpc: Set the correct ksp_limit on ppc32 when switching to irq stack 2014-02-17 11:19:34 +11:00
misc_64.S powerpc: module: handle MODVERSION for .TOC. 2014-04-23 10:05:28 +10:00
misc.S
module_32.c powerpc: Move local setup.h declarations to arch includes 2013-10-30 16:00:31 +11:00
module_64.c powerpc/module: Fix TOC symbol CRC 2014-06-25 13:10:48 +10:00
module.c powerpc: Move local setup.h declarations to arch includes 2013-10-30 16:00:31 +11:00
msi.c
nvram_64.c arch/powerpc/kernel: Use %12.12s instead of %12s to avoid memory overflow 2013-11-25 11:50:57 +11:00
of_platform.c
paca.c KVM: PPC: Book3S PR: Rework SLB switching code 2014-05-30 14:26:30 +02:00
pci_32.c
pci_64.c powerpc/PCI: Fix NULL dereference in sys_pciconfig_iobase() list traversal 2014-04-14 16:33:49 -06:00
pci_dn.c
pci_of_scan.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
pci-common.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
pci-hotplug.c powerpc/PCI: Use pci_is_bridge() to simplify code 2014-05-27 14:57:36 -06:00
pmc.c
ppc32.h
ppc_ksyms.c powerpc: memcpy optimization for 64bit LE 2014-04-30 15:26:18 +10:00
ppc_save_regs.S
proc_powerpc.c
process.c powerpc: Pull out ksp_vsid logic into a helper 2014-07-28 14:10:24 +10:00
prom_init_check.sh powerpc/powernv: Remove OPAL v1 takeover 2014-06-25 13:10:47 +10:00
prom_init.c powerpc/powernv: Remove OPAL v1 takeover 2014-06-25 13:10:47 +10:00
prom_parse.c
prom.c Merge remote-tracking branch 'scott/next' into next 2014-08-05 14:13:41 +10:00
ptrace32.c powerpc: move debug registers in a structure 2013-10-18 18:44:49 -05:00
ptrace.c powerpc: PTRACE_PEEKUSR always returns FPR0 2013-12-13 15:48:33 +11:00
reloc_32.S
reloc_64.S powerpc: Align p_dyn, p_rela and p_st symbols 2014-03-07 13:50:19 +11:00
rtas_flash.c powerpc: Fix endianness of flash_block_list in rtas_flash 2014-07-28 11:30:54 +10:00
rtas_pci.c powerpc/eeh: Block PCI-CFG access during PE reset 2014-04-28 17:34:02 +10:00
rtas-proc.c
rtas-rtc.c
rtas.c of/fdt: update of_get_flat_dt_prop in prep for libfdt 2014-04-30 00:59:15 -05:00
rtasd.c powerpc/le: Enable RTAS events support 2014-04-07 10:33:12 +10:00
setup_32.c powerpc: Make boot_cpuid common between 32 and 64-bit 2014-04-07 10:33:14 +10:00
setup_64.c Merge remote-tracking branch 'scott/next' into next 2014-08-05 14:13:41 +10:00
setup-common.c Merge remote-tracking branch 'scott/next' into next 2014-08-05 14:13:41 +10:00
signal_32.c powerpc: Remove ancient DEBUG_SIG code 2014-06-24 12:43:14 +10:00
signal_64.c powerpc: Remove ancient DEBUG_SIG code 2014-06-24 12:43:14 +10:00
signal.c powerpc: Fix smp_processor_id() in preemptible splat in set_breakpoint 2014-05-20 10:54:06 +10:00
signal.h
smp-tbsync.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
smp.c Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-06-12 19:42:15 -07:00
stacktrace.c
suspend.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S powerpc: Only save/restore SDR1 if in hypervisor mode 2013-10-31 12:37:29 +11:00
swsusp_booke.S powerpc/fsl-booke: Use SPRN_SPRGn rather than mfsprg/mtsprg 2014-01-07 19:06:03 -06:00
swsusp.c
sys_ppc32.c
syscalls.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
sysfs.c powerpc: Fix regression of per-CPU DSCR setting 2014-05-28 13:35:40 +10:00
systbl_chk.c
systbl_chk.sh
systbl.S powerpc: Use standard macros for sys_sigpending() & sys_old_getrlimit() 2014-07-28 14:09:23 +10:00
tau_6xx.c
time.c powerpc: fix typo 'CONFIG_PMAC' 2014-06-11 17:04:29 +10:00
tm.S powerpc: Fix regression of per-CPU DSCR setting 2014-05-28 13:35:40 +10:00
traps.c powerpc/traps/e500: fix misleading error output 2014-06-25 18:49:38 -05:00
udbg_16550.c powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00
udbg.c powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00
uprobes.c uprobes/powerpc: Kill arch_uprobe->ainsn 2013-11-20 16:31:01 +01:00
vdso.c powerpc/booke64: Use SPRG7 for VDSO 2014-03-19 19:57:14 -05:00
vecemu.c powerpc: Put FP/VSX and VR state into structures 2013-10-11 17:26:49 +11:00
vector.S powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
vio.c powerpc: Revert c6102609 and replace it with the correct fix for vio dma mask setting 2014-03-07 15:50:12 +11:00
vmlinux.lds.S