aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kernel/lparcfg.c4
-rw-r--r--arch/powerpc/kernel/vdso32/Makefile2
-rw-r--r--arch/powerpc/platforms/pseries/rtasd.c1
-rw-r--r--arch/powerpc/platforms/pseries/smp.c4
-rw-r--r--arch/ppc/kernel/asm-offsets.c28
5 files changed, 33 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/lparcfg.c b/arch/powerpc/kernel/lparcfg.c
index e45ce48ec126..1b3ba8a440a6 100644
--- a/arch/powerpc/kernel/lparcfg.c
+++ b/arch/powerpc/kernel/lparcfg.c
@@ -35,7 +35,7 @@
35#include <asm/time.h> 35#include <asm/time.h>
36#include <asm/iseries/it_exp_vpd_panel.h> 36#include <asm/iseries/it_exp_vpd_panel.h>
37#include <asm/prom.h> 37#include <asm/prom.h>
38#include <asm/systemcfg.h> 38#include <asm/vdso_datapage.h>
39 39
40#define MODULE_VERS "1.6" 40#define MODULE_VERS "1.6"
41#define MODULE_NAME "lparcfg" 41#define MODULE_NAME "lparcfg"
@@ -369,7 +369,7 @@ static int lparcfg_data(struct seq_file *m, void *v)
369 lrdrp = (int *)get_property(rtas_node, "ibm,lrdr-capacity", NULL); 369 lrdrp = (int *)get_property(rtas_node, "ibm,lrdr-capacity", NULL);
370 370
371 if (lrdrp == NULL) { 371 if (lrdrp == NULL) {
372 partition_potential_processors = _systemcfg->processorCount; 372 partition_potential_processors = vdso_data->processorCount;
373 } else { 373 } else {
374 partition_potential_processors = *(lrdrp + 4); 374 partition_potential_processors = *(lrdrp + 4);
375 } 375 }
diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso32/Makefile
index 758331d4d1a5..8a3bed5f143a 100644
--- a/arch/powerpc/kernel/vdso32/Makefile
+++ b/arch/powerpc/kernel/vdso32/Makefile
@@ -19,7 +19,7 @@ EXTRA_AFLAGS := -D__VDSO32__ -s
19 19
20obj-y += vdso32_wrapper.o 20obj-y += vdso32_wrapper.o
21extra-y += vdso32.lds 21extra-y += vdso32.lds
22CPPFLAGS_vdso32.lds += -P -C -U$(ARCH) 22CPPFLAGS_vdso32.lds += -P -C -Upowerpc
23 23
24# Force dependency (incbin is bad) 24# Force dependency (incbin is bad)
25$(obj)/vdso32_wrapper.o : $(obj)/vdso32.so 25$(obj)/vdso32_wrapper.o : $(obj)/vdso32.so
diff --git a/arch/powerpc/platforms/pseries/rtasd.c b/arch/powerpc/platforms/pseries/rtasd.c
index 00cf331a1dc4..a6f628d4c9dc 100644
--- a/arch/powerpc/platforms/pseries/rtasd.c
+++ b/arch/powerpc/platforms/pseries/rtasd.c
@@ -27,7 +27,6 @@
27#include <asm/prom.h> 27#include <asm/prom.h>
28#include <asm/nvram.h> 28#include <asm/nvram.h>
29#include <asm/atomic.h> 29#include <asm/atomic.h>
30#include <asm/systemcfg.h>
31 30
32#if 0 31#if 0
33#define DEBUG(A...) printk(KERN_ERR A) 32#define DEBUG(A...) printk(KERN_ERR A)
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c
index 3ba794ca3288..5800cde7d5ad 100644
--- a/arch/powerpc/platforms/pseries/smp.c
+++ b/arch/powerpc/platforms/pseries/smp.c
@@ -46,7 +46,7 @@
46#include <asm/rtas.h> 46#include <asm/rtas.h>
47#include <asm/pSeries_reconfig.h> 47#include <asm/pSeries_reconfig.h>
48#include <asm/mpic.h> 48#include <asm/mpic.h>
49#include <asm/systemcfg.h> 49#include <asm/vdso_datapage.h>
50 50
51#include "plpar_wrappers.h" 51#include "plpar_wrappers.h"
52 52
@@ -97,7 +97,7 @@ int pSeries_cpu_disable(void)
97 int cpu = smp_processor_id(); 97 int cpu = smp_processor_id();
98 98
99 cpu_clear(cpu, cpu_online_map); 99 cpu_clear(cpu, cpu_online_map);
100 _systemcfg->processorCount--; 100 vdso_data->processorCount--;
101 101
102 /*fix boot_cpuid here*/ 102 /*fix boot_cpuid here*/
103 if (cpu == boot_cpuid) 103 if (cpu == boot_cpuid)
diff --git a/arch/ppc/kernel/asm-offsets.c b/arch/ppc/kernel/asm-offsets.c
index 968261d69572..fe0e767fb94e 100644
--- a/arch/ppc/kernel/asm-offsets.c
+++ b/arch/ppc/kernel/asm-offsets.c
@@ -25,6 +25,7 @@
25#include <asm/processor.h> 25#include <asm/processor.h>
26#include <asm/cputable.h> 26#include <asm/cputable.h>
27#include <asm/thread_info.h> 27#include <asm/thread_info.h>
28#include <asm/vdso_datapage.h>
28 29
29#define DEFINE(sym, val) \ 30#define DEFINE(sym, val) \
30 asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 31 asm volatile("\n->" #sym " %0 " #val : : "i" (val))
@@ -143,5 +144,32 @@ main(void)
143 144
144 DEFINE(TASK_SIZE, TASK_SIZE); 145 DEFINE(TASK_SIZE, TASK_SIZE);
145 DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); 146 DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28);
147
148 /* datapage offsets for use by vdso */
149 DEFINE(CFG_TB_ORIG_STAMP, offsetof(struct vdso_data, tb_orig_stamp));
150 DEFINE(CFG_TB_TICKS_PER_SEC, offsetof(struct vdso_data, tb_ticks_per_sec));
151 DEFINE(CFG_TB_TO_XS, offsetof(struct vdso_data, tb_to_xs));
152 DEFINE(CFG_STAMP_XSEC, offsetof(struct vdso_data, stamp_xsec));
153 DEFINE(CFG_TB_UPDATE_COUNT, offsetof(struct vdso_data, tb_update_count));
154 DEFINE(CFG_TZ_MINUTEWEST, offsetof(struct vdso_data, tz_minuteswest));
155 DEFINE(CFG_TZ_DSTTIME, offsetof(struct vdso_data, tz_dsttime));
156 DEFINE(CFG_SYSCALL_MAP32, offsetof(struct vdso_data, syscall_map_32));
157 DEFINE(WTOM_CLOCK_SEC, offsetof(struct vdso_data, wtom_clock_sec));
158 DEFINE(WTOM_CLOCK_NSEC, offsetof(struct vdso_data, wtom_clock_nsec));
159 DEFINE(TVAL32_TV_SEC, offsetof(struct timeval, tv_sec));
160 DEFINE(TVAL32_TV_USEC, offsetof(struct timeval, tv_usec));
161 DEFINE(TSPEC32_TV_SEC, offsetof(struct timespec, tv_sec));
162 DEFINE(TSPEC32_TV_NSEC, offsetof(struct timespec, tv_nsec));
163
164 /* timeval/timezone offsets for use by vdso */
165 DEFINE(TZONE_TZ_MINWEST, offsetof(struct timezone, tz_minuteswest));
166 DEFINE(TZONE_TZ_DSTTIME, offsetof(struct timezone, tz_dsttime));
167
168 /* Other bits used by the vdso */
169 DEFINE(CLOCK_REALTIME, CLOCK_REALTIME);
170 DEFINE(CLOCK_MONOTONIC, CLOCK_MONOTONIC);
171 DEFINE(NSEC_PER_SEC, NSEC_PER_SEC);
172 DEFINE(CLOCK_REALTIME_RES, TICK_NSEC);
173
146 return 0; 174 return 0;
147} 175}