diff -urN tlb-state-ref/arch/i386/kernel/smp.c tlb-state/arch/i386/kernel/smp.c --- tlb-state-ref/arch/i386/kernel/smp.c Fri Mar 29 15:38:59 2002 +++ tlb-state/arch/i386/kernel/smp.c Fri Mar 29 15:39:37 2002 @@ -105,7 +105,7 @@ /* The 'big kernel lock' */ spinlock_cacheline_t kernel_flag_cacheline = {SPIN_LOCK_UNLOCKED}; -struct tlb_state cpu_tlbstate[NR_CPUS] = {[0 ... NR_CPUS-1] = { &init_mm, 0 }}; +struct tlb_state cpu_tlbstate[NR_CPUS] __cacheline_aligned = {[0 ... NR_CPUS-1] = { &init_mm, 0 }}; /* * the following functions deal with sending IPIs between CPUs. diff -urN tlb-state-ref/include/asm-i386/pgalloc.h tlb-state/include/asm-i386/pgalloc.h --- tlb-state-ref/include/asm-i386/pgalloc.h Fri Mar 29 15:39:00 2002 +++ tlb-state/include/asm-i386/pgalloc.h Fri Mar 29 15:39:10 2002 @@ -229,7 +229,7 @@ { struct mm_struct *active_mm; int state; -}; +} ____cacheline_aligned; extern struct tlb_state cpu_tlbstate[NR_CPUS];