i386: NX emulation
[linux-flexiantxendom0-natty.git] / arch / x86 / mm / tlb.c
index 6acc724..03f0659 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/module.h>
 #include <linux/cpu.h>
 
+#include <asm/desc.h>
 #include <asm/tlbflush.h>
 #include <asm/mmu_context.h>
 #include <asm/cache.h>
@@ -134,6 +135,12 @@ void smp_invalidate_interrupt(struct pt_regs *regs)
        union smp_flush_state *f;
 
        cpu = smp_processor_id();
+
+#ifdef CONFIG_X86_32
+       if (current->active_mm)
+               load_user_cs_desc(cpu, current->active_mm);
+#endif
+
        /*
         * orig_rax contains the negated interrupt vector.
         * Use that to determine where the sender put the data.