linux/arch/x86/kernel
Rafael J. Wysocki efa4d2fb04 Hibernation: Use temporary page tables for kernel text mapping on x86_64
Use temporary page tables for the kernel text mapping during hibernation
restore on x86_64.

Without the patch, the original boot kernel's page tables that represent the
kernel text mapping are used while the core of the image kernel is being
restored.  However, in principle, if the boot kernel is not identical to the
image kernel, the location of these page tables in the image kernel need not
be the same, so we should create a safe copy of the kernel text mapping prior
to restoring the core of the image kernel.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-18 14:37:20 -07:00
..
acpi s2ram: kill old debugging junk 2007-10-18 14:37:19 -07:00
cpu x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
cpufreq x86_64: move kernel/cpufreq 2007-10-11 11:17:06 +02:00
.gitignore .gitignore update for x86 arch 2007-10-17 21:19:04 +02:00
alternative.c Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86 2007-10-17 13:13:16 -07:00
aperture_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
apic_32.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
apic_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
apm_32.c Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
asm-offsets_32.c paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
asm-offsets_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
asm-offsets.c i386: move kernel 2007-10-11 11:17:01 +02:00
audit_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
bootflag.c i386: move kernel 2007-10-11 11:17:01 +02:00
bugs_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
cpuid.c i386: simplify smp_call_function_single() call sequence in cpuid 2007-10-17 20:16:19 +02:00
crash_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
crash_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
crash_dump_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
crash_dump_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
doublefault_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
e820_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
e820_64.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
early_printk.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
early-quirks_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
efi_32.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
efi_stub_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
entry_32.S Merge branch 'xen-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen 2007-10-17 11:10:11 -07:00
entry_64.S x86: return correct error code from child_rip in x86_64 entry.S 2007-10-17 20:15:29 +02:00
genapic_64.c x86: remove x86_cpu_to_log_apicid 2007-10-17 20:16:24 +02:00
genapic_flat_64.c x86: remove x86_cpu_to_log_apicid 2007-10-17 20:16:24 +02:00
geode_32.c x86: Geode Multi-Function General Purpose Timers support 2007-10-12 23:04:06 +02:00
head64.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
head_32.S i386: print better early fault info 2007-10-17 20:16:56 +02:00
head_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
hpet.c x86: HPET force enable for ICH5 2007-10-12 23:04:24 +02:00
i386_ksyms_32.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:05 +02:00
i387_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i387_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8237.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8253.c x86_64: remove now unused code 2007-10-12 23:04:23 +02:00
i8259_32.c x86: clean up struct irqaction initializers 2007-10-17 20:16:06 +02:00
i8259_64.c x86: more struct irqaction initializer cleanups 2007-10-17 20:16:07 +02:00
init_task_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
init_task_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
io_apic_32.c x86: make io_apic not connected pin print complete 2007-10-17 20:16:57 +02:00
io_apic_64.c x86: make io_apic not connected pin print complete 2007-10-17 20:16:57 +02:00
ioport_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ioport_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
irq_32.c x86: also show non-zero IRQ counts for vectors that currently don't have a handler 2007-10-17 20:16:54 +02:00
irq_64.c x86: also show non-zero IRQ counts for vectors that currently don't have a handler 2007-10-17 20:16:54 +02:00
k8.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
kprobes_32.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
kprobes_64.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
ldt_32.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:05 +02:00
ldt_64.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:00 +02:00
machine_kexec_32.c add-vmcore: add a prefix "VMCOREINFO_" to the vmcoreinfo macros 2007-10-17 08:42:54 -07:00
machine_kexec_64.c add-vmcore: add a prefix "VMCOREINFO_" to the vmcoreinfo macros 2007-10-17 08:42:54 -07:00
Makefile x86: delete vsyscall files during make clean 2007-10-17 21:56:01 +02:00
Makefile_32 x86: fix kernel rebuild due to vsyscall fallout 2007-10-17 21:19:23 +02:00
Makefile_64 x86_64: remove now unused code 2007-10-12 23:04:23 +02:00
mca_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
mce_64.c x86: clean up mce= argument parsing slightly 2007-10-17 20:16:32 +02:00
mce_amd_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
mce_intel_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
mfgpt_32.c x86: Geode MFGPT clock event device support 2007-10-12 23:04:06 +02:00
microcode.c i386: move kernel 2007-10-11 11:17:01 +02:00
module_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
module_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
mpparse_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
mpparse_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
msr.c i386: Misc cpuinit annotations 2007-10-17 20:16:00 +02:00
nmi_32.c x86: Fix irq0 / local apic timer accounting 2007-10-12 23:04:06 +02:00
nmi_64.c x86: Fix irq0 / local apic timer accounting 2007-10-12 23:04:07 +02:00
numaq_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
paravirt_32.c paravirt: clean up lazy mode handling 2007-10-16 11:51:29 -07:00
pci-calgary_64.c x86: calgary get rid of translate_phb 2007-10-17 20:16:41 +02:00
pci-dma_32.c i386: Clean up duplicate includes in arch/i386/kernel/ 2007-10-17 20:15:51 +02:00
pci-dma_64.c x86: use dev_to_node() to get node for device in dma_alloc_pages() 2007-10-17 20:15:47 +02:00
pci-gart_64.c x86: Some cleanups for pci gart code 2007-10-17 20:16:10 +02:00
pci-nommu_64.c x86-64: update nommu to sg helpers 2007-10-16 11:26:02 +02:00
pci-swiotlb_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
pcspeaker.c i386: move kernel 2007-10-11 11:17:01 +02:00
pmtimer_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
process_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
process_64.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
ptrace_32.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:05 +02:00
ptrace_64.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:00 +02:00
quirks.c x86: HPET add another ICH7 PCI id 2007-10-12 23:04:24 +02:00
reboot_32.c Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
reboot_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
reboot_fixups_32.c PCI: pci_get_device call from interrupt in reboot fixups 2007-10-12 15:03:15 -07:00
relocate_kernel_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
relocate_kernel_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
scx200_32.c long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
setup64.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
setup_32.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
setup_64.c x86: Use string instruction memcpy on AMD Fam11h 2007-10-17 20:16:58 +02:00
sigframe_32.h i386: move kernel 2007-10-11 11:17:01 +02:00
signal_32.c i386: remove unnecessary code 2007-10-17 20:17:01 +02:00
signal_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
smp_32.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
smp_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
smpboot_32.c x86: misc. constifications 2007-10-17 20:16:08 +02:00
smpboot_64.c x86: remove x86_cpu_to_log_apicid 2007-10-17 20:16:24 +02:00
smpcommon_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
srat_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
stacktrace.c x86: constify stacktrace_ops 2007-10-17 20:16:11 +02:00
summit_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
suspend_64.c Hibernation: Use temporary page tables for kernel text mapping on x86_64 2007-10-18 14:37:20 -07:00
suspend_asm_64.S Hibernation: Pass CR3 in the image header on x86_64 2007-10-18 14:37:19 -07:00
sys_i386_32.c remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
sys_x86_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
syscall_64.c i386/x86_64: move headers to include/asm-x86 2007-10-11 11:20:03 +02:00
syscall_table_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
sysenter_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
tce_64.c x86: Create clflush() inline, remove hardcoded wbinvd 2007-10-17 20:16:12 +02:00
time_32.c x86: Fix irq0 / local apic timer accounting 2007-10-12 23:04:06 +02:00
time_64.c x86_64: remove now unused code 2007-10-12 23:04:23 +02:00
topology.c i386: no need to make enable_cpu_hotplug a variable 2007-10-17 20:16:16 +02:00
trampoline_32.S x86: misc. constifications 2007-10-17 20:16:08 +02:00
trampoline_64.S x86: misc. constifications 2007-10-17 20:16:08 +02:00
traps_32.c i386: clean up oops/bug reports 2007-10-17 20:16:52 +02:00
traps_64.c x86: constify stacktrace_ops 2007-10-17 20:16:11 +02:00
tsc_32.c x86: do not crash on non-Geode PCs in TSC probe 2007-10-17 20:15:37 +02:00
tsc_64.c x86: unify timex.h variants 2007-10-12 23:04:23 +02:00
tsc_sync.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
verify_cpu_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
vm86_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
vmi_32.c paravirt: clean up lazy mode handling 2007-10-16 11:51:29 -07:00
vmiclock_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
vmlinux_32.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vmlinux_64.lds.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
vmlinux.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsmp_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
vsyscall_32.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall_64.c x86: remove duplicated vsyscall nsec update 2007-10-17 20:17:02 +02:00
vsyscall-int80_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-note_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-sigreturn_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-sysenter_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
x8664_ksyms_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00