linux_dsm_epyc7002/arch
Robert Richter a68c439b19 apic, x86: Check if EILVT APIC registers are available (AMD only)
This patch implements checks for the availability of LVT entries
(APIC500-530) and reserves it if used. The check becomes
necessary since we want to let the BIOS provide the LVT offsets.
 The offsets should be determined by the subsystems using it
like those for MCE threshold or IBS.  On K8 only offset 0
(APIC500) and MCE interrupts are supported. Beginning with
family 10h at least 4 offsets are available.

Since offsets must be consistent for all cores, we keep track of
the LVT offsets in software and reserve the offset for the same
vector also to be used on other cores. An offset is freed by
setting the entry to APIC_EILVT_MASKED.

If the BIOS is right, there should be no conflicts. Otherwise a
"[Firmware Bug]: ..." error message is generated. However, if
software does not properly determines the offsets, it is not
necessarily a BIOS bug.

Signed-off-by: Robert Richter <robert.richter@amd.com>
LKML-Reference: <1286360874-1471-2-git-send-email-robert.richter@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2010-10-20 04:42:13 +02:00
..
alpha Fix up more fallout form alpha signal cleanups 2010-09-30 08:37:38 -07:00
arm Merge branch 'linus' into irq/core 2010-10-20 04:38:59 +02:00
avr32 modules: Fix module_bug_list list corruption race 2010-10-05 11:29:27 -07:00
blackfin Blackfin: bf52x/bf54x boards: drop unused nand page size 2010-08-27 16:08:43 -04:00
cris Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
frv frv: double syscall restarts, syscall restart in sigreturn() 2010-09-20 10:44:38 -07:00
h8300 modules: Fix module_bug_list list corruption race 2010-10-05 11:29:27 -07:00
ia64 dmar: Convert to new irq chip functions 2010-10-12 16:53:37 +02:00
m32r Merge branch 'linus' into irq/core 2010-10-20 04:38:59 +02:00
m68k arch/m68k/mac/macboing.c: use unsigned long for irqflags 2010-10-01 10:50:58 -07:00
m68knommu m68k,m68knommu: Wire up fanotify_init, fanotify_mark, and prlimit64 2010-09-13 20:28:45 +02:00
microblaze Merge branch 'merge-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-18 09:26:17 -07:00
mips Define _addr_lsb in siginfo_t for mips 2010-10-09 11:42:37 -07:00
mn10300 modules: Fix module_bug_list list corruption race 2010-10-05 11:29:27 -07:00
parisc modules: Fix module_bug_list list corruption race 2010-10-05 11:29:27 -07:00
powerpc Merge branch 'linus' into irq/core 2010-10-20 04:38:59 +02:00
s390 modules: Fix module_bug_list list corruption race 2010-10-05 11:29:27 -07:00
score Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
sh Merge branch 'linus' into irq/core 2010-10-20 04:38:59 +02:00
sparc pci: Convert msi to new irq_chip functions 2010-10-12 16:53:34 +02:00
tile Merge branch 'x86/urgent' of into irq/sparseirq 2010-10-12 16:41:26 +02:00
um Merge branch 'linus' into irq/core 2010-10-20 04:38:59 +02:00
x86 apic, x86: Check if EILVT APIC registers are available (AMD only) 2010-10-20 04:42:13 +02:00
xtensa genirq: Cleanup irq_chip->typename leftovers 2010-09-23 19:12:26 +02:00
.gitignore
Kconfig kprobes: Fix Kconfig dependency 2010-09-13 20:41:31 +02:00