As usual, written and tested against 2.6.23 and made apply against 2.6.18 without further testing. Signed-off-by: Jan Beulich <jbeulich@novell.com> Index: head-2007-10-26/arch/i386/kernel/smp-xen.c ==================================================================--- head-2007-10-26.orig/arch/i386/kernel/smp-xen.c 2007-11-21 15:31:22.000000000 +0100 +++ head-2007-10-26/arch/i386/kernel/smp-xen.c 2007-11-21 14:47:42.000000000 +0100 @@ -434,21 +434,6 @@ void flush_tlb_all(void) on_each_cpu(do_flush_tlb_all, NULL, 1, 1); } -#else - -irqreturn_t smp_invalidate_interrupt(int irq, void *dev_id, - struct pt_regs *regs) -{ return 0; } -void flush_tlb_current_task(void) -{ xen_tlb_flush_mask(¤t->mm->cpu_vm_mask); } -void flush_tlb_mm(struct mm_struct * mm) -{ xen_tlb_flush_mask(&mm->cpu_vm_mask); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long va) -{ xen_invlpg_mask(&vma->vm_mm->cpu_vm_mask, va); } -EXPORT_SYMBOL(flush_tlb_page); -void flush_tlb_all(void) -{ xen_tlb_flush_all(); } - #endif /* XEN */ /* Index: head-2007-10-26/arch/x86_64/kernel/smp-xen.c ==================================================================--- head-2007-10-26.orig/arch/x86_64/kernel/smp-xen.c 2007-11-21 15:31:22.000000000 +0100 +++ head-2007-10-26/arch/x86_64/kernel/smp-xen.c 2007-11-21 14:38:37.000000000 +0100 @@ -288,17 +288,6 @@ void flush_tlb_all(void) { on_each_cpu(do_flush_tlb_all, NULL, 1, 1); } -#else -asmlinkage void smp_invalidate_interrupt (void) -{ return; } -void flush_tlb_current_task(void) -{ xen_tlb_flush_mask(¤t->mm->cpu_vm_mask); } -void flush_tlb_mm (struct mm_struct * mm) -{ xen_tlb_flush_mask(&mm->cpu_vm_mask); } -void flush_tlb_page(struct vm_area_struct * vma, unsigned long va) -{ xen_invlpg_mask(&vma->vm_mm->cpu_vm_mask, va); } -void flush_tlb_all(void) -{ xen_tlb_flush_all(); } #endif /* Xen */ /* Index: head-2007-10-26/include/asm-i386/mach-xen/asm/tlbflush.h ==================================================================--- head-2007-10-26.orig/include/asm-i386/mach-xen/asm/tlbflush.h 2007-11-21 15:31:22.000000000 +0100 +++ head-2007-10-26/include/asm-i386/mach-xen/asm/tlbflush.h 2007-11-21 15:32:04.000000000 +0100 @@ -67,10 +67,10 @@ static inline void flush_tlb_range(struc #define local_flush_tlb() \ __flush_tlb() -extern void flush_tlb_all(void); -extern void flush_tlb_current_task(void); -extern void flush_tlb_mm(struct mm_struct *); -extern void flush_tlb_page(struct vm_area_struct *, unsigned long); +#define flush_tlb_all xen_tlb_flush_all +#define flush_tlb_current_task() xen_tlb_flush_mask(¤t->mm->cpu_vm_mask) +#define flush_tlb_mm(mm) xen_tlb_flush_mask(&(mm)->cpu_vm_mask) +#define flush_tlb_page(vma, va) xen_invlpg_mask(&(vma)->vm_mm->cpu_vm_mask, va) #define flush_tlb() flush_tlb_current_task() Index: head-2007-10-26/include/asm-x86_64/mach-xen/asm/tlbflush.h ==================================================================--- head-2007-10-26.orig/include/asm-x86_64/mach-xen/asm/tlbflush.h 2007-11-21 15:31:22.000000000 +0100 +++ head-2007-10-26/include/asm-x86_64/mach-xen/asm/tlbflush.h 2007-11-21 15:32:21.000000000 +0100 @@ -71,10 +71,10 @@ static inline void flush_tlb_range(struc #define local_flush_tlb() \ __flush_tlb() -extern void flush_tlb_all(void); -extern void flush_tlb_current_task(void); -extern void flush_tlb_mm(struct mm_struct *); -extern void flush_tlb_page(struct vm_area_struct *, unsigned long); +#define flush_tlb_all xen_tlb_flush_all +#define flush_tlb_current_task() xen_tlb_flush_mask(¤t->mm->cpu_vm_mask) +#define flush_tlb_mm(mm) xen_tlb_flush_mask(&(mm)->cpu_vm_mask) +#define flush_tlb_page(vma, va) xen_invlpg_mask(&(vma)->vm_mm->cpu_vm_mask, va) #define flush_tlb() flush_tlb_current_task() _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel