powerpc: Make slb_shadow a local
authorJeremy Kerr <jk@ozlabs.org>
Thu, 5 Dec 2013 03:31:08 +0000 (11:31 +0800)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 9 Dec 2013 00:40:25 +0000 (11:40 +1100)
The only external user of slb_shadow is the pseries lpar code, and it
can access through the paca array instead.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/lppaca.h
arch/powerpc/kernel/paca.c
arch/powerpc/platforms/pseries/lpar.c

index 844c28de7ec05e96f4578701a9d46c6dda6d2ecb..d0a2a2f9956471362e13093272955f42c0e4121b 100644 (file)
@@ -132,8 +132,6 @@ struct slb_shadow {
        } save_area[SLB_NUM_BOLTED];
 } ____cacheline_aligned;
 
-extern struct slb_shadow slb_shadow[];
-
 /*
  * Layout of entries in the hypervisor's dispatch trace log buffer.
  */
index 0620eaaaad45b419c70475485a9d052c0ddbe246..9095a6f7ac2c199bdc2a81eebda6dbe82c5b078a 100644 (file)
@@ -99,7 +99,7 @@ static inline void free_lppacas(void) { }
  * 3 persistent SLBs are registered here.  The buffer will be zero
  * initially, hence will all be invaild until we actually write them.
  */
-struct slb_shadow slb_shadow[] __cacheline_aligned = {
+static struct slb_shadow slb_shadow[] __cacheline_aligned = {
        [0 ... (NR_CPUS-1)] = {
                .persistent = cpu_to_be32(SLB_NUM_BOLTED),
                .buffer_length = cpu_to_be32(sizeof(struct slb_shadow)),
index 4fca3def9db951896864d0b716d7dea8a2364ba2..28cf0f33c5be23b605440366792b066993fc7867 100644 (file)
@@ -92,7 +92,7 @@ void vpa_init(int cpu)
         * PAPR says this feature is SLB-Buffer but firmware never
         * reports that.  All SPLPAR support SLB shadow buffer.
         */
-       addr = __pa(&slb_shadow[cpu]);
+       addr = __pa(paca[cpu].slb_shadow_ptr);
        if (firmware_has_feature(FW_FEATURE_SPLPAR)) {
                ret = register_slb_shadow(hwcpu, addr);
                if (ret)