5a606b72a4
This is also a partial workaround for a bug in the LDOM firmware which double-transmits RX inos during high load. Without this, such an event causes the kernel to loop forever in the interrupt call chain ACK'ing but never actually running the IRQ handler (and thus clearing the interrupt condition in the device). There is still a bad potential effect when double INOs occur, not covered by this changeset. Namely, if the INO is already on the per-cpu INO vector list, we still blindly re-insert it and thus we can end up losing interrupts already linked in after it. We could deal with that by traversing the list before insertion, but that's too expensive for this edge case. Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
asm-offsets.c | ||
audit.c | ||
auxio.c | ||
binfmt_aout32.c | ||
binfmt_elf32.c | ||
central.c | ||
chmc.c | ||
compat_audit.c | ||
cpu.c | ||
dtlb_miss.S | ||
dtlb_prot.S | ||
ebus.c | ||
entry.S | ||
etrap.S | ||
head.S | ||
hvapi.c | ||
idprom.c | ||
init_task.c | ||
iommu_common.c | ||
iommu_common.h | ||
irq.c | ||
isa.c | ||
itlb_miss.S | ||
kprobes.c | ||
ktlb.S | ||
ldc.c | ||
Makefile | ||
mdesc.c | ||
module.c | ||
of_device.c | ||
pci.c | ||
pci_common.c | ||
pci_fire.c | ||
pci_impl.h | ||
pci_iommu.c | ||
pci_psycho.c | ||
pci_sabre.c | ||
pci_schizo.c | ||
pci_sun4v.c | ||
pci_sun4v.h | ||
pci_sun4v_asm.S | ||
power.c | ||
process.c | ||
prom.c | ||
ptrace.c | ||
rtrap.S | ||
sbus.c | ||
semaphore.c | ||
setup.c | ||
signal.c | ||
signal32.c | ||
smp.c | ||
sparc64_ksyms.c | ||
sstate.c | ||
stacktrace.c | ||
starfire.c | ||
sun4v_ivec.S | ||
sun4v_tlb_miss.S | ||
sunos_ioctl32.c | ||
sys32.S | ||
sys_sparc.c | ||
sys_sparc32.c | ||
sys_sunos32.c | ||
sysfs.c | ||
systbls.S | ||
time.c | ||
trampoline.S | ||
traps.c | ||
tsb.S | ||
ttable.S | ||
una_asm.S | ||
unaligned.c | ||
us2e_cpufreq.c | ||
us3_cpufreq.c | ||
vio.c | ||
viohs.c | ||
visemul.c | ||
vmlinux.lds.S | ||
winfixup.S |