* It is now possible to use percpu operations for pda access since the pda is in the percpu area. Drop the pda operations. Thus: read_pda --> x86_read_percpu write_pda --> x86_write_percpu add_pda (+1) --> x86_inc_percpu or_pda --> x86_or_percpu Based on linux-2.6.tip/master Signed-off-by: Christoph Lameter Signed-off-by: Mike Travis --- include/asm-x86/mmu_context_64.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) --- linux-2.6.tip.orig/include/asm-x86/mmu_context_64.h 2008-07-01 10:41:33.000000000 -0700 +++ linux-2.6.tip/include/asm-x86/mmu_context_64.h 2008-07-01 10:49:14.220312889 -0700 @@ -20,8 +20,8 @@ void destroy_context(struct mm_struct *m static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) { #ifdef CONFIG_SMP - if (read_pda(mmu_state) == TLBSTATE_OK) - write_pda(mmu_state, TLBSTATE_LAZY); + if (x86_read_percpu(pda.mmu_state) == TLBSTATE_OK) + x86_write_percpu(pda.mmu_state, TLBSTATE_LAZY); #endif } @@ -33,8 +33,8 @@ static inline void switch_mm(struct mm_s /* stop flush ipis for the previous mm */ cpu_clear(cpu, prev->cpu_vm_mask); #ifdef CONFIG_SMP - write_pda(mmu_state, TLBSTATE_OK); - write_pda(active_mm, next); + x86_write_percpu(pda.mmu_state, TLBSTATE_OK); + x86_write_percpu(pda.active_mm, next); #endif cpu_set(cpu, next->cpu_vm_mask); load_cr3(next->pgd); @@ -44,8 +44,8 @@ static inline void switch_mm(struct mm_s } #ifdef CONFIG_SMP else { - write_pda(mmu_state, TLBSTATE_OK); - if (read_pda(active_mm) != next) + x86_write_percpu(pda.mmu_state, TLBSTATE_OK); + if (x86_read_percpu(pda.active_mm) != next) BUG(); if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) { /* We were in lazy tlb mode and leave_mm disabled -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/