From: Anton Blanchard Slowly removing non essential things from the paca --- arch/ppc64/kernel/setup.c | 6 +++++- arch/ppc64/kernel/smp.c | 4 +++- include/asm-ppc64/paca.h | 3 +-- 3 files changed, 9 insertions(+), 4 deletions(-) diff -puN arch/ppc64/kernel/setup.c~ppc64-remove_pvr_from_paca arch/ppc64/kernel/setup.c --- 25/arch/ppc64/kernel/setup.c~ppc64-remove_pvr_from_paca 2004-02-04 02:24:35.000000000 -0800 +++ 25-akpm/arch/ppc64/kernel/setup.c 2004-02-04 02:24:35.000000000 -0800 @@ -283,6 +283,10 @@ EXPORT_SYMBOL(machine_halt); unsigned long ppc_proc_freq; unsigned long ppc_tb_freq; +#ifdef CONFIG_SMP +DEFINE_PER_CPU(unsigned int, pvr); +#endif + static int show_cpuinfo(struct seq_file *m, void *v) { unsigned long cpu_id = (unsigned long)v - 1; @@ -302,7 +306,7 @@ static int show_cpuinfo(struct seq_file return 0; #ifdef CONFIG_SMP - pvr = paca[cpu_id].pvr; + pvr = per_cpu(pvr, cpu_id); #else pvr = _get_PVR(); #endif diff -puN arch/ppc64/kernel/smp.c~ppc64-remove_pvr_from_paca arch/ppc64/kernel/smp.c --- 25/arch/ppc64/kernel/smp.c~ppc64-remove_pvr_from_paca 2004-02-04 02:24:35.000000000 -0800 +++ 25-akpm/arch/ppc64/kernel/smp.c 2004-02-04 02:24:35.000000000 -0800 @@ -575,9 +575,11 @@ extern struct gettimeofday_struct do_gto struct thread_info *current_set[NR_CPUS]; +DECLARE_PER_CPU(unsigned int, pvr); + static void __devinit smp_store_cpu_info(int id) { - paca[id].pvr = _get_PVR(); + per_cpu(pvr, id) = _get_PVR(); } void __init smp_prepare_cpus(unsigned int max_cpus) diff -puN include/asm-ppc64/paca.h~ppc64-remove_pvr_from_paca include/asm-ppc64/paca.h --- 25/include/asm-ppc64/paca.h~ppc64-remove_pvr_from_paca 2004-02-04 02:24:35.000000000 -0800 +++ 25-akpm/include/asm-ppc64/paca.h 2004-02-04 02:24:35.000000000 -0800 @@ -64,14 +64,13 @@ struct paca_struct { u16 xHwProcNum; /* Physical processor number 0x1A */ u32 default_decr; /* Default decrementer value 0x1c */ u64 xKsave; /* Saved Kernel stack addr or zero 0x20 */ - u64 pvr; /* Processor version register 0x28 */ struct ItLpQueue *lpQueuePtr; /* LpQueue handled by this processor 0x30 */ u64 xTOC; /* Kernel TOC address 0x38 */ STAB xStab_data; /* Segment table information 0x40,0x48,0x50 */ u8 *exception_sp; /* 0x58 */ u8 xProcEnabled; /* 0x59 */ u8 prof_enabled; /* 1=iSeries profiling enabled 0x60 */ - u8 resv1[30]; /* 0x61-0x7F */ + u8 resv1[38]; /* 0x61-0x7F */ /*===================================================================================== * CACHE_LINE_2 0x0080 - 0x00FF _