linux_dsm_epyc7002/arch/i386/kernel
Jan Beulich 365bff806e [PATCH] i386: fix MTRR code
Until not so long ago, there were system log messages pointing to
inconsistent MTRR setup of the video frame buffer caused by the way vesafb
and X worked. While vesafb was fixed meanwhile, I believe fixing it there
only hides a shortcoming in the MTRR code itself, in that that code is not
symmetric with respect to the ordering of attempts to set up two (or more)
regions where one contains the other. In the current shape, it permits
only setting up sub-regions of pre-exisiting ones. The patch below makes
this symmetric.

While working on that I noticed a few more inconsistencies in that code,
namely
- use of 'unsigned int' for sizes in many, but not all places (the patch
  is converting this to use 'unsigned long' everywhere, which specifically
  might be necessary for x86-64 once a processor supporting more than 44
  physical address bits would become available)
- the code to correct inconsistent settings during secondary processor
  startup tried (if necessary) to correct, among other things, the value
  in IA32_MTRR_DEF_TYPE, however the newly computed value would never get
  used (i.e. stored in the respective MSR)
- the generic range validation code checked that the end of the
  to-be-added range would be above 1MB; the value checked should have been
  the start of the range
- when contained regions are detected, previously this was allowed only
  when the old region was uncacheable; this can be symmetric (i.e. the new
  region can also be uncacheable) and even further as per Intel's
  documentation write-trough and write-back for either region is also
  compatible with the respective opposite in the other

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
2006-12-07 02:14:09 +01:00
..
acpi [PATCH] severing fs.h, radix-tree.h -> sched.h 2006-12-04 02:00:24 -05:00
cpu [PATCH] i386: fix MTRR code 2006-12-07 02:14:09 +01:00
.gitignore [PATCH] x86: gitignore some autogenerated files for i386 2006-02-14 16:09:35 -08:00
alternative.c [PATCH] paravirt: Patch inline replacements for paravirt intercepts 2006-12-07 02:14:08 +01:00
apic.c [PATCH] i386: irqs build fix 2006-10-06 08:53:39 -07:00
apm.c [PATCH] paravirt: Allow disable power management under hypervisor 2006-12-07 02:14:08 +01:00
asm-offsets.c [PATCH] paravirt: header and stubs for paravirtualisation 2006-12-07 02:14:07 +01:00
bootflag.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cpuid.c [PATCH] i386: Fix double #includes in arch/i386 2006-12-07 02:14:07 +01:00
crash_dump.c
crash.c [PATCH] stack overflow safe kdump: safe smp_send_nmi_allbutself() 2006-10-01 00:39:31 -07:00
doublefault.c [PATCH] i386: cpu_relax() in crash.c and doublefault.c 2006-06-25 10:00:55 -07:00
e820.c [PATCH] paravirt: Be careful about touching BIOS address space 2006-12-07 02:14:08 +01:00
early_printk.c
efi_stub.S [PATCH] x86: remove unused include from efi_stub.S 2006-09-26 08:48:56 -07:00
efi.c BUG_ON cleanups in arch/i386 2006-10-03 23:34:58 +02:00
entry.S [PATCH] paravirt: Patch inline replacements for paravirt intercepts 2006-12-07 02:14:08 +01:00
head.S [PATCH] paravirt: Add startup infrastructure for paravirtualization 2006-12-07 02:14:08 +01:00
hpet.c [PATCH] i386: add missing iounmap in i386 hpet clocksource code 2006-12-07 02:14:02 +01:00
i386_ksyms.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i387.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i8237.c [PATCH] mmc (mainly): add "or later" clause to licence statement. 2006-10-01 00:39:23 -07:00
i8253.c [PATCH] i386 Time: Avoid PIT SMP lockups 2006-10-17 08:18:42 -07:00
i8259.c [PATCH] paravirt: header and stubs for paravirtualisation 2006-12-07 02:14:07 +01:00
init_task.c [PATCH] nsproxy: move init_nsproxy into kernel/nsproxy.c 2006-10-02 07:57:20 -07:00
io_apic.c [PATCH] paravirt: Add option to allow skipping the timer check 2006-12-07 02:14:09 +01:00
ioport.c [PATCH] i386: use thread_info flags for debug regs and IO bitmaps 2006-07-09 18:47:12 -07:00
irq.c [PATCH] genirq: clean up irq-flow-type naming 2006-10-17 08:18:45 -07:00
kprobes.c [PATCH] kretprobe: fix kretprobe-booster to save regs and set status 2006-11-08 18:29:24 -08:00
ldt.c [PATCH] i386: remove default_ldt, and simplify ldt-setting. 2006-12-07 02:14:01 +01:00
machine_kexec.c [PATCH] i386: Avoid overwriting the current pgd (V4, i386) 2006-09-26 10:52:38 +02:00
Makefile [PATCH] paravirt: Add startup infrastructure for paravirtualization 2006-12-07 02:14:08 +01:00
mca.c [PATCH] i386: Disallow kprobes on NMI handlers 2006-09-26 10:52:36 +02:00
microcode.c [PATCH] Regression in 2.6.19-rc microcode driver 2006-11-08 18:29:22 -08:00
module.c [PATCH] paravirt: Patch inline replacements for paravirt intercepts 2006-12-07 02:14:08 +01:00
mpparse.c [PATCH] i386: Support physical cpu hotplug for x86_64 2006-09-26 10:52:35 +02:00
msr.c Driver core: convert msr code to use struct device 2006-12-01 14:52:00 -08:00
nmi.c [PATCH] i386: Don't touch per cpu memory of offline CPUs in touch_nmi_watchdog 2006-12-07 02:14:09 +01:00
numaq.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
paravirt.c [PATCH] paravirt: Add MMU virtualization to paravirt_ops 2006-12-07 02:14:08 +01:00
pci-dma.c PCI: arch/i386/kernel/pci-dma.c: ioremap balanced with iounmap 2006-12-01 14:36:59 -08:00
process.c [PATCH] i386: remove IOPL check on task switch 2006-12-07 02:14:07 +01:00
ptrace.c [PATCH] i386: Fix places where using %gs changes the usermode ABI 2006-12-07 02:14:02 +01:00
quirks.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
reboot_fixups.c [PATCH] i386: Remove printk about reboot fixups at reboot 2006-04-09 11:53:53 -07:00
reboot.c [PATCH] x86: remove locally-defined ldt structure in favour of standard type 2006-09-26 08:48:55 -07:00
relocate_kernel.S [PATCH] i386: Avoid overwriting the current pgd (V4, i386) 2006-09-26 10:52:38 +02:00
scx200.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
setup.c [PATCH] paravirt: header and stubs for paravirtualisation 2006-12-07 02:14:07 +01:00
sigframe.h
signal.c [PATCH] i386: Use %gs as the PDA base-segment in the kernel 2006-12-07 02:14:02 +01:00
smp.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
smpboot.c [PATCH] paravirt: header and stubs for paravirtualisation 2006-12-07 02:14:07 +01:00
srat.c [PATCH] convert i386 Summit subarch to use SRAT info for apicid_to_node calls 2006-09-29 09:18:03 -07:00
summit.c
sys_i386.c [PATCH] provide kernel_execve on all architectures 2006-10-02 07:57:23 -07:00
syscall_table.S [PATCH] epoll_pwait() 2006-10-11 11:14:21 -07:00
sysenter.c [PATCH] paravirt: Disable vdso by default when CONFIG_PARAVIRT is enabled 2006-12-07 02:14:08 +01:00
time_hpet.c [PATCH] i386: Add iounmap in error paths in hpet code 2006-12-07 02:14:02 +01:00
time.c [PATCH] paravirt: header and stubs for paravirtualisation 2006-12-07 02:14:07 +01:00
topology.c [PATCH] i386: clean up topology.c 2006-09-26 10:52:35 +02:00
trampoline.S
traps.c [PATCH] i386: Use probe_kernel_address instead of __get_user in fault paths 2006-12-07 02:14:06 +01:00
tsc.c [PATCH] i386: Fix double #includes in arch/i386 2006-12-07 02:14:07 +01:00
vm86.c [PATCH] i386: Update sys_vm86 to cope with changed pt_regs and %gs usage 2006-12-07 02:14:03 +01:00
vmlinux.lds.S [PATCH] paravirt: Add startup infrastructure for paravirtualization 2006-12-07 02:14:08 +01:00
vsyscall-int80.S
vsyscall-note.S
vsyscall-sigreturn.S [PATCH] Mark unwind info for signal trampolines in vDSOs 2006-03-31 12:18:52 -08:00
vsyscall-sysenter.S [PATCH] vdso: randomize the i386 vDSO by moving it into a vma 2006-06-27 17:32:38 -07:00
vsyscall.lds.S [PATCH] vDSO hash-style fix 2006-07-31 13:28:43 -07:00
vsyscall.S