linux_dsm_epyc7002/arch/powerpc/kernel
Thomas Gleixner b8a9a11b97 powerpc: Eeh: Kill another abuse of irq_desc
commit 91150af3a (powerpc/eeh: Fix unbalanced enable for IRQ) is
another brilliant example of trainwreck engineering.

The patch "fixes" the issue of an unbalanced call to irq_enable()
which causes a prominent warning by checking the disabled state of the
interrupt line and call conditionally into the core code.

This is wrong in two aspects:

1) The warning is there to tell users, that they need to fix their
   asymetric enable/disable patterns by finding the root cause and
   solving it there.

   It's definitely not meant to work around it by conditionally
   calling into the core code depending on the random state of the irq
   line.

   Asymetric irq_disable/enable calls are a clear sign of wrong usage
   of the interfaces which have to be cured at the root and not by
   somehow hacking around it.

2) The abuse of core internal data structure instead of using the
   proper interfaces for retrieving the information for the 'hack
   around'

   irq_desc is core internal and it's clear enough stated.

Replace at least the irq_desc abuse with the proper functions and add
a big fat comment why this is absurd and completely wrong.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Gavin Shan <shangw@linux.vnet.ibm.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: ppc <linuxppc-dev@lists.ozlabs.org>
Link: http://lkml.kernel.org/r/20140223212736.562906212@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-03-04 17:37:52 +01:00
..
vdso32 powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
vdso64 powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
.gitignore
align.c powerpc: Enable Little Endian Alignment Handler for Float Pair Instructions 2013-10-30 16:01:23 +11:00
asm-offsets.c Second batch of KVM updates. Some minor x86 fixes, 2014-01-31 08:37:32 -08:00
audit.c
btext.c powerpc/btext: Fix CONFIG_PPC_EARLY_DEBUG_BOOTX on ppc32 2013-08-27 16:01:23 +10:00
cacheinfo.c powerpc: Make sure "cache" directory is removed when offlining cpu 2014-01-29 17:02:26 +11:00
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_a2.S
cpu_setup_fsl_booke.S powerpc/85xx: add hardware automatically enter pw20 state 2014-01-07 19:40:28 -06:00
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/book3s: Add flush_tlb operation in cpu_spec. 2013-12-05 16:04:38 +11:00
cpu_setup_ppc970.S
cputable.c powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors on power8. 2013-12-05 16:04:40 +11:00
crash_dump.c powerpc: Fix endian issues in crash dump code 2013-12-13 15:48:39 +11:00
crash.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11: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 powerpc/eeh: Remove reference to PCI device 2013-07-24 14:18:46 +10:00
eeh_dev.c
eeh_driver.c powerpc: Eeh: Kill another abuse of irq_desc 2014-03-04 17:37:52 +01:00
eeh_event.c powerpc/eeh: More accurate log 2013-11-21 10:33:36 +11:00
eeh_pe.c powerpc/eeh: Add restore_config operation 2014-01-15 13:46:46 +11:00
eeh_sysfs.c powerpc/eeh: Introdce flag to protect sysfs 2013-07-24 14:18:49 +10:00
eeh.c powerpc/eeh: Hotplug improvement 2014-01-15 13:58:29 +11:00
entry_32.S
entry_64.S powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
epapr_hcalls.S
epapr_paravirt.c powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
exceptions-64e.S powerpc: Replaced tlbilx with tlbwe in the initialization code 2014-01-10 17:34:04 -06:00
exceptions-64s.S powerpc: Fix "attempt to move .org backwards" error 2013-12-30 14:16:30 +11:00
fadump.c
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: Make ftrace endian-safe. 2013-10-11 16:53:26 +11: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 the empty giveup_fpu() function on 32bit kernel 2013-08-14 14:59:50 +10:00
head_44x.S powerpc: Remove the empty giveup_fpu() function on 32bit kernel 2013-08-14 14:59:50 +10:00
head_64.S powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11: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: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11: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
idle_e500.S
idle_power4.S
idle_power7.S powerpc/book3s: Return from interrupt if coming from evil context. 2013-12-05 16:04:36 +11:00
idle.c
io-workarounds.c powerpc: Better split CONFIG_PPC_INDIRECT_PIO and CONFIG_PPC_INDIRECT_MMIO 2013-08-14 14:57:50 +10:00
io.c powerpc/powernv: Add PIO accessors for Power8 LPC bus 2013-08-14 14:58:08 +10:00
iomap.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
iommu.c powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
irq.c powerpc: Irq: Use generic_handle_irq 2014-03-04 17:37:52 +01: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 doc: typo on word accounting in kprobes.c in mutliple architectures 2013-10-14 15:46:39 +02:00
kvm_emul.S
kvm.c kvm/powerpc: rename kvm_hypercall() to epapr_hypercall() 2014-01-09 10:14:56 +01:00
l2cr_6xx.S
legacy_serial.c powerpc/legacy_serial: Fix incorrect placement of __initdata tag 2013-10-11 16:48:59 +11:00
machine_kexec_32.c
machine_kexec_64.c powerpc: Fix endian issues in kexec and crash dump code 2014-02-11 11:24:52 +11:00
machine_kexec.c powerpc: Fix endian issues in kexec and crash dump code 2014-02-11 11:24:52 +11:00
Makefile clk: mpc5xxx: switch to COMMON_CLK, retire PPC_CLOCK 2014-01-12 18:53:04 +01:00
mce_power.c powerpc: Fix endian issues in power7/8 machine check handler 2013-12-30 14:51:09 +11:00
mce.c Move precessing of MCE queued event out from syscall exit path. 2014-01-15 13:58:59 +11:00
misc_32.S powerpc: purge all the prefetched instructions for the coherent icache flush 2013-12-02 14:13:47 +11:00
misc_64.S Merge branch 'merge' into next 2013-12-30 15:19:31 +11: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: Move local setup.h declarations to arch includes 2013-10-30 16:00:31 +11: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 powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
pci_32.c
pci_64.c powerpc/pci: Don't use bitfield for force_32bit_msi 2013-08-14 11:50:25 +10:00
pci_dn.c powerpc: Make PCI device node device tree accesses endian safe 2013-08-14 15:33:31 +10:00
pci_of_scan.c PCI: Convert pcibios_resource_to_bus() to take a pci_bus, not a pci_dev 2013-12-21 10:06:10 -07:00
pci-common.c PCI: Convert pcibios_resource_to_bus() to take a pci_bus, not a pci_dev 2013-12-21 10:06:10 -07:00
pci-hotplug.c powerpc/pci: Partial tree hotplug support 2013-07-24 14:18:48 +10:00
pmc.c
ppc32.h
ppc_ksyms.c Merge branch 'for-kvm' into next 2013-10-11 18:23:53 +11:00
ppc_save_regs.S
proc_powerpc.c
process.c powerpc: Fix hw breakpoints on !HAVE_HW_BREAKPOINT configurations 2014-01-29 16:58:47 +11:00
prom_init_check.sh powerpc/pmac: Early debug output on screen on 64-bit macs 2013-08-14 14:57:40 +10:00
prom_init.c powerpc: Check return value of instance-to-package OF call 2014-01-13 09:49:17 +11:00
prom_parse.c powerpc: of_parse_dma_window should take a __be32 *dma_window 2013-08-14 15:33:26 +10:00
prom.c powerpc: introduce early_get_first_memblock_info 2014-01-09 17:52:17 -06: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/relocate fix relocate processing in LE mode 2014-02-11 11:24:48 +11:00
rtas_flash.c
rtas_pci.c powerpc/kernel: Fix endian issue in rtas_pci 2013-10-11 16:50:22 +11:00
rtas-proc.c
rtas-rtc.c
rtas.c powerpc: Make RTAS calls endian safe 2013-08-14 15:33:22 +10:00
rtasd.c
setup_32.c powerpc/ppc32: Fix the bug in the init of non-base exception stack for UP 2014-02-11 11:24:52 +11:00
setup_64.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-01-27 21:11:26 -08:00
setup-common.c powerpc: Fix endian issue in setup-common.c 2013-12-13 15:48:34 +11:00
signal_32.c powerpc: Fix 32-bit frames for signals delivered when transactional 2014-01-29 16:58:49 +11:00
signal_64.c powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
signal.c powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11: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 'merge' into next 2013-12-30 15:19:31 +11: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/pseries/cpuidle: smt-snooze-delay cleanup. 2014-01-29 17:02:24 +11:00
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c
time.c powerpc: Fix races with irq_work 2014-01-15 13:59:03 +11:00
tm.S powerpc: Use 32 bit loads and stores when operating on condition register values 2013-10-30 16:02:14 +11:00
traps.c powerpc: Fix transactional FP/VMX/VSX unavailable handlers 2014-01-15 13:59:14 +11:00
udbg_16550.c powerpc/wsp: Fix early debug build 2013-08-16 10:59:27 +10:00
udbg.c
uprobes.c uprobes/powerpc: Kill arch_uprobe->ainsn 2013-11-20 16:31:01 +01:00
vdso.c powerpc: Move local setup.h declarations to arch includes 2013-10-30 16:00:31 +11: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/iommu: Update the generic code to use dynamic iommu page sizes 2013-12-30 14:17:19 +11:00
vmlinux.lds.S powerpc/modules: Module CRC relocation fix causes perf issues 2013-07-24 14:18:43 +10:00