]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-s390/tlbflush.h
x86: commonize smp.h
[linux-2.6-omap-h63xx.git] / include / asm-s390 / tlbflush.h
index 70fa5ae581801b8a112edc0f71dfc9c9770ed83b..35fb4f9127b2ae41e35683eb0dccb245413cdcec 100644 (file)
@@ -61,11 +61,12 @@ static inline void __tlb_flush_mm(struct mm_struct * mm)
         * only ran on the local cpu.
         */
        if (MACHINE_HAS_IDTE) {
-               pgd_t *shadow = get_shadow_table(mm->pgd);
-
-               if (shadow)
-                       __tlb_flush_idte((unsigned long) shadow | mm->context);
-               __tlb_flush_idte((unsigned long) mm->pgd | mm->context);
+               if (mm->context.noexec)
+                       __tlb_flush_idte((unsigned long)
+                                        get_shadow_table(mm->pgd) |
+                                        mm->context.asce_bits);
+               __tlb_flush_idte((unsigned long) mm->pgd |
+                                mm->context.asce_bits);
                return;
        }
        preempt_disable();