linux_dsm_epyc7002/arch/x86/kernel/apic
Thomas Gleixner e84cf6aa50 x86/apic/vector: Handle vector release on CPU unplug correctly
When a irq vector is replaced, then the previous vector is normally
released when the first interrupt happens on the new vector. If the target
CPU of the previous vector is already offline when the new vector is
installed, then the previous vector is silently discarded, which leads to
accounting issues causing suspend failures and other problems.

Adjust the logic so that the previous vector is freed in the underlying
matrix allocator to ensure that the accounting stays correct.

Fixes: 69cde0004a ("x86/vector: Use matrix allocator for vector assignment")
Reported-by: Yuriy Vostrikov <delamonpansie@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Yuriy Vostrikov <delamonpansie@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20180222112316.930791749@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-02-23 08:02:00 +01:00
..
apic_common.c x86/apic: Remove unused callbacks 2017-09-25 20:51:58 +02:00
apic_flat_64.c Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-30 12:59:12 -08:00
apic_noop.c x86/apic: Switch all APICs to Fixed delivery mode 2017-12-29 14:20:48 +01:00
apic_numachip.c x86/apic: Remove unused callbacks 2017-09-25 20:51:58 +02:00
apic.c x86/cpu: Rename cpu_data.x86_mask to cpu_data.x86_stepping 2018-02-15 01:15:52 +01:00
bigsmp_32.c Merge branch 'linus' into x86/apic, to resolve conflicts 2017-11-07 10:51:10 +01:00
hw_nmi.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
io_apic.c x86: Introduce and use MP IRQ trigger and polarity defines 2018-01-14 21:11:54 +01:00
ipi.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile x86/PCI: Remove unused HyperTransport interrupt support 2017-11-23 20:18:18 +01:00
msi.c x86/apic: Switch all APICs to Fixed delivery mode 2017-12-29 14:20:48 +01:00
probe_32.c x86/apic: Switch all APICs to Fixed delivery mode 2017-12-29 14:20:48 +01:00
probe_64.c x86/apic: Remove duplicated include from probe_64.c 2016-07-19 16:02:31 +02:00
vector.c x86/apic/vector: Handle vector release on CPU unplug correctly 2018-02-23 08:02:00 +01:00
x2apic_cluster.c x86/apic: Switch all APICs to Fixed delivery mode 2017-12-29 14:20:48 +01:00
x2apic_phys.c Merge branch 'linus' into x86/apic, to resolve conflicts 2017-11-07 10:51:10 +01:00
x2apic_uv_x.c x86/platform/UV: Fix GAM Range Table entries less than 1GB 2018-02-13 14:15:45 +01:00
x2apic.h x86/apic: Sanitize return value of apic.set_apic_id() 2017-09-25 20:51:48 +02:00