Merge branch 'x86-xen-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-xen-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (42 commits) xen: cache cr0 value to avoid trap'n'emulate for read_cr0 xen/x86-64: clean up warnings about IST-using traps xen/x86-64: fix breakpoints and hardware watchpoints xen: reserve Xen start_info rather than e820 reserving xen: add FIX_TEXT_POKE to fixmap lguest: update lazy mmu changes to match lguest's use of kvm hypercalls xen: honour VCPU availability on boot xen: add "capabilities" file xen: drop kexec bits from /sys/hypervisor since kexec isn't implemented yet xen/sys/hypervisor: change writable_pt to features xen: add /sys/hypervisor support xen/xenbus: export xenbus_dev_changed xen: use device model for suspending xenbus devices xen: remove suspend_cancel hook xen/dev-evtchn: clean up locking in evtchn xen: export ioctl headers to userspace xen: add /dev/xen/evtchn driver xen: add irq_from_evtchn xen: clean up gate trap/interrupt constants xen: set _PAGE_NX in __supported_pte_mask before pagetable construction ...
This commit is contained in:
@@ -56,6 +56,7 @@ struct desc_ptr;
|
||||
struct tss_struct;
|
||||
struct mm_struct;
|
||||
struct desc_struct;
|
||||
struct task_struct;
|
||||
|
||||
/*
|
||||
* Wrapper type for pointers to code which uses the non-standard
|
||||
@@ -203,7 +204,8 @@ struct pv_cpu_ops {
|
||||
|
||||
void (*swapgs)(void);
|
||||
|
||||
struct pv_lazy_ops lazy_mode;
|
||||
void (*start_context_switch)(struct task_struct *prev);
|
||||
void (*end_context_switch)(struct task_struct *next);
|
||||
};
|
||||
|
||||
struct pv_irq_ops {
|
||||
@@ -1399,25 +1401,23 @@ enum paravirt_lazy_mode {
|
||||
};
|
||||
|
||||
enum paravirt_lazy_mode paravirt_get_lazy_mode(void);
|
||||
void paravirt_enter_lazy_cpu(void);
|
||||
void paravirt_leave_lazy_cpu(void);
|
||||
void paravirt_start_context_switch(struct task_struct *prev);
|
||||
void paravirt_end_context_switch(struct task_struct *next);
|
||||
|
||||
void paravirt_enter_lazy_mmu(void);
|
||||
void paravirt_leave_lazy_mmu(void);
|
||||
void paravirt_leave_lazy(enum paravirt_lazy_mode mode);
|
||||
|
||||
#define __HAVE_ARCH_ENTER_LAZY_CPU_MODE
|
||||
static inline void arch_enter_lazy_cpu_mode(void)
|
||||
#define __HAVE_ARCH_START_CONTEXT_SWITCH
|
||||
static inline void arch_start_context_switch(struct task_struct *prev)
|
||||
{
|
||||
PVOP_VCALL0(pv_cpu_ops.lazy_mode.enter);
|
||||
PVOP_VCALL1(pv_cpu_ops.start_context_switch, prev);
|
||||
}
|
||||
|
||||
static inline void arch_leave_lazy_cpu_mode(void)
|
||||
static inline void arch_end_context_switch(struct task_struct *next)
|
||||
{
|
||||
PVOP_VCALL0(pv_cpu_ops.lazy_mode.leave);
|
||||
PVOP_VCALL1(pv_cpu_ops.end_context_switch, next);
|
||||
}
|
||||
|
||||
void arch_flush_lazy_cpu_mode(void);
|
||||
|
||||
#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
|
||||
static inline void arch_enter_lazy_mmu_mode(void)
|
||||
{
|
||||
|
Reference in New Issue
Block a user