diff options
Diffstat (limited to 'arch/powerpc/kernel/paca.c')
| -rw-r--r-- | arch/powerpc/kernel/paca.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c index c68741fed14b..55f1a25085cd 100644 --- a/arch/powerpc/kernel/paca.c +++ b/arch/powerpc/kernel/paca.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <asm/lppaca.h> | 17 | #include <asm/lppaca.h> |
| 18 | #include <asm/iseries/it_lp_reg_save.h> | 18 | #include <asm/iseries/it_lp_reg_save.h> |
| 19 | #include <asm/paca.h> | 19 | #include <asm/paca.h> |
| 20 | #include <asm/mmu.h> | ||
| 20 | 21 | ||
| 21 | 22 | ||
| 22 | /* This symbol is provided by the linker - let it fill in the paca | 23 | /* This symbol is provided by the linker - let it fill in the paca |
| @@ -45,6 +46,17 @@ struct lppaca lppaca[] = { | |||
| 45 | }, | 46 | }, |
| 46 | }; | 47 | }; |
| 47 | 48 | ||
| 49 | /* | ||
| 50 | * 3 persistent SLBs are registered here. The buffer will be zero | ||
| 51 | * initially, hence will all be invaild until we actually write them. | ||
| 52 | */ | ||
| 53 | struct slb_shadow slb_shadow[] __cacheline_aligned = { | ||
| 54 | [0 ... (NR_CPUS-1)] = { | ||
| 55 | .persistent = SLB_NUM_BOLTED, | ||
| 56 | .buffer_length = sizeof(struct slb_shadow), | ||
| 57 | }, | ||
| 58 | }; | ||
| 59 | |||
| 48 | /* The Paca is an array with one entry per processor. Each contains an | 60 | /* The Paca is an array with one entry per processor. Each contains an |
| 49 | * lppaca, which contains the information shared between the | 61 | * lppaca, which contains the information shared between the |
| 50 | * hypervisor and Linux. | 62 | * hypervisor and Linux. |
| @@ -59,7 +71,8 @@ struct lppaca lppaca[] = { | |||
| 59 | .lock_token = 0x8000, \ | 71 | .lock_token = 0x8000, \ |
| 60 | .paca_index = (number), /* Paca Index */ \ | 72 | .paca_index = (number), /* Paca Index */ \ |
| 61 | .kernel_toc = (unsigned long)(&__toc_start) + 0x8000UL, \ | 73 | .kernel_toc = (unsigned long)(&__toc_start) + 0x8000UL, \ |
| 62 | .hw_cpu_id = 0xffff, | 74 | .hw_cpu_id = 0xffff, \ |
| 75 | .slb_shadow_ptr = &slb_shadow[number], | ||
| 63 | 76 | ||
| 64 | #ifdef CONFIG_PPC_ISERIES | 77 | #ifdef CONFIG_PPC_ISERIES |
| 65 | #define PACA_INIT_ISERIES(number) \ | 78 | #define PACA_INIT_ISERIES(number) \ |
