linux-stable/arch/i386/kernel
Rusty Russell d3561b7fa0 [PATCH] paravirt: header and stubs for paravirtualisation
Create a paravirt.h header for all the critical operations which need to be
replaced with hypervisor calls, and include that instead of defining native
operations, when CONFIG_PARAVIRT.

This patch does the dumbest possible replacement of paravirtualized
instructions: calls through a "paravirt_ops" structure.  Currently these are
function implementations of native hardware: hypervisors will override the ops
structure with their own variants.

All the pv-ops functions are declared "fastcall" so that a specific
register-based ABI is used, to make inlining assember easier.

And:

+From: Andy Whitcroft <apw@shadowen.org>

The paravirt ops introduce a 'weak' attribute onto memory_setup().
Code ordering leads to the following warnings on x86:

    arch/i386/kernel/setup.c:651: warning: weak declaration of
                `memory_setup' after first use results in unspecified behavior

Move memory_setup() to avoid this.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
2006-12-07 02:14:07 +01:00
..
acpi [PATCH] severing fs.h, radix-tree.h -> sched.h 2006-12-04 02:00:24 -05:00
cpu [PATCH] i386: Retrieve CLFLUSH size from CPUID 2006-12-07 02:14:05 +01:00
.gitignore [PATCH] x86: gitignore some autogenerated files for i386 2006-02-14 16:09:35 -08:00
alternative.c [PATCH] severing module.h->sched.h 2006-12-04 02:00:22 -05:00
apic.c [PATCH] i386: irqs build fix 2006-10-06 08:53:39 -07:00
apm.c [PATCH] APM: URL of APM 1.2 specs has changed 2006-10-30 12:08:42 -08: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.c [PATCH] stack overflow safe kdump: safe smp_send_nmi_allbutself() 2006-10-01 00:39:31 -07:00
crash_dump.c [PATCH] kdump: read previous kernel's memory 2006-01-10 08:01:28 -08:00
doublefault.c [PATCH] i386: cpu_relax() in crash.c and doublefault.c 2006-06-25 10:00:55 -07:00
e820.c [PATCH] i386: Move memory map printing and other code to e820.c 2006-12-07 02:14:06 +01:00
early_printk.c
efi.c BUG_ON cleanups in arch/i386 2006-10-03 23:34:58 +02:00
efi_stub.S [PATCH] x86: remove unused include from efi_stub.S 2006-09-26 08:48:56 -07:00
entry.S [PATCH] paravirt: header and stubs for paravirtualisation 2006-12-07 02:14:07 +01:00
head.S [PATCH] i386: Use %gs as the PDA base-segment in the kernel 2006-12-07 02:14:02 +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] i386: Fix race in IO-APIC routing entry setup. 2006-12-07 02:14:07 +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: header and stubs for paravirtualisation 2006-12-07 02:14:07 +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] x86: SMP alternatives 2006-03-23 07:38:04 -08: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] x86: all cpu backtrace 2006-12-07 02:14:01 +01:00
numaq.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
paravirt.c [PATCH] paravirt: header and stubs for paravirtualisation 2006-12-07 02:14:07 +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.c [PATCH] x86: remove locally-defined ldt structure in favour of standard type 2006-09-26 08:48:55 -07:00
reboot_fixups.c [PATCH] i386: Remove printk about reboot fixups at reboot 2006-04-09 11:53:53 -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 [PATCH] __user annotations for pointers in i386 sigframe 2005-09-09 10:31:59 -07:00
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] small fix for not releasing the mmap semaphore in i386/arch_setup_additional_pages 2006-06-28 12:05:50 -07:00
time.c [PATCH] paravirt: header and stubs for paravirtualisation 2006-12-07 02:14:07 +01:00
time_hpet.c [PATCH] i386: Add iounmap in error paths in hpet code 2006-12-07 02:14:02 +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] i386: Implement CONFIG_PHYSICAL_ALIGN 2006-12-07 02:14:04 +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