linux_dsm_epyc7002/arch
Jiang Liu 527f0a91e9 x86/irq: Build correct vector mapping for multiple MSI interrupts
Alex Deucher, Mark Rustad and Alexander Holler reported a regression
with the latest v4.2-rc4 kernel, which breaks some SATA controllers.
With multi-MSI capable SATA controllers, only the first port works,
all other ports time out when executing SATA commands.

This happens because the first argument to assign_irq_vector_policy()
is always the base linux irq number of the multi MSI interrupt block,
so all subsequent vector assignments operate on the base linux irq
number, so all MSI irqs are handled as the first irq number. Therefor
the other MSI irqs of a device are never set up correctly and never
fire.

Add the loop iterator to the base irq number so all vectors are
assigned correctly.

Fixes: b5dc8e6c21 "x86/irq: Use hierarchical irqdomain to manage CPU interrupt vectors"
Reported-and-tested-by: Alex Deucher <alexdeucher@gmail.com>
Reported-and-tested-by: Mark Rustad <mrustad@gmail.com>
Reported-and-tested-by: Alexander Holler <holler@ahsoftware.de>
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Tony Luck <tony.luck@intel.com>
Link: http://lkml.kernel.org/r/1439911228-9880-1-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-08-18 18:18:55 +02:00
..
alpha mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
arc ARCv2: spinlock/rwlock/atomics: reduce 1 instruction in exponential backoff 2015-08-07 13:56:16 +05:30
arm ARM: SoC fixes 2015-08-16 15:44:33 -07:00
arm64 arm64: VDSO: fix coarse clock monotonicity regression 2015-08-10 15:37:45 +01:00
avr32 avr32: handle NULL as a valid clock object 2015-07-27 09:14:07 +02:00
blackfin mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
c6x mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
cris mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
frv mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
h8300 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
hexagon mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
ia64 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
m32r m32r: Add ioreadXX/iowriteXX big-endian mmio accessors 2015-07-23 18:08:28 -07:00
m68k mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
metag mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
microblaze mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
mips MIPS: Fix seccomp syscall argument for MIPS64 2015-08-16 15:00:59 +02:00
mn10300 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
nios2 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
openrisc mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
parisc parisc: mm: Fix a memory leak related to pmd not attached to the pgd 2015-07-19 08:56:14 +02:00
powerpc signal: fix information leak in copy_siginfo_from_user32 2015-08-07 04:39:40 +03:00
s390 Just two very small & simple patches. 2015-08-05 18:50:38 +03:00
score mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
sh mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
sparc sparc64: Fix userspace FPU register corruptions. 2015-08-06 19:13:25 -07:00
tile signal: fix information leak in copy_siginfo_from_user32 2015-08-07 04:39:40 +03:00
um mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
unicore32 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
x86 x86/irq: Build correct vector mapping for multiple MSI interrupts 2015-08-18 18:18:55 +02:00
xtensa mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
.gitignore
Kconfig x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86 2015-07-18 03:42:51 +02:00