git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git]
/
arch
/
powerpc
/
kernel
/
paca.c
diff --git
a/arch/powerpc/kernel/paca.c
b/arch/powerpc/kernel/paca.c
index
c68741f
..
5d1b708
100644
(file)
--- a/
arch/powerpc/kernel/paca.c
+++ b/
arch/powerpc/kernel/paca.c
@@
-7,6
+7,7
@@
* 2 of the License, or (at your option) any later version.
*/
* 2 of the License, or (at your option) any later version.
*/
+#include <linux/config.h>
#include <linux/types.h>
#include <linux/threads.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/threads.h>
#include <linux/module.h>
@@
-15,6
+16,7
@@
#include <asm/ptrace.h>
#include <asm/page.h>
#include <asm/lppaca.h>
#include <asm/ptrace.h>
#include <asm/page.h>
#include <asm/lppaca.h>
+#include <asm/iseries/it_lp_queue.h>
#include <asm/iseries/it_lp_reg_save.h>
#include <asm/paca.h>
#include <asm/iseries/it_lp_reg_save.h>
#include <asm/paca.h>
@@
-54,11
+56,14
@@
struct lppaca lppaca[] = {
* processors. The processor VPD array needs one entry per physical
* processor (not thread).
*/
* processors. The processor VPD array needs one entry per physical
* processor (not thread).
*/
-#define PACA_INIT_COMMON(number
)
\
+#define PACA_INIT_COMMON(number
, start, asrr, asrv)
\
.lppaca_ptr = &lppaca[number], \
.lock_token = 0x8000, \
.paca_index = (number), /* Paca Index */ \
.kernel_toc = (unsigned long)(&__toc_start) + 0x8000UL, \
.lppaca_ptr = &lppaca[number], \
.lock_token = 0x8000, \
.paca_index = (number), /* Paca Index */ \
.kernel_toc = (unsigned long)(&__toc_start) + 0x8000UL, \
+ .stab_real = (asrr), /* Real pointer to segment table */ \
+ .stab_addr = (asrv), /* Virt pointer to segment table */ \
+ .cpu_start = (start), /* Processor start */ \
.hw_cpu_id = 0xffff,
#ifdef CONFIG_PPC_ISERIES
.hw_cpu_id = 0xffff,
#ifdef CONFIG_PPC_ISERIES
@@
-67,20
+72,30
@@
struct lppaca lppaca[] = {
#define PACA_INIT(number) \
{ \
#define PACA_INIT(number) \
{ \
- PACA_INIT_COMMON(number) \
+ PACA_INIT_COMMON(number, 0, 0, 0) \
+ PACA_INIT_ISERIES(number) \
+}
+
+#define BOOTCPU_PACA_INIT(number) \
+{ \
+ PACA_INIT_COMMON(number, 1, 0, (u64)&initial_stab) \
PACA_INIT_ISERIES(number) \
}
#else
#define PACA_INIT(number) \
{ \
PACA_INIT_ISERIES(number) \
}
#else
#define PACA_INIT(number) \
{ \
- PACA_INIT_COMMON(number
)
\
+ PACA_INIT_COMMON(number
, 0, 0, 0)
\
}
}
+#define BOOTCPU_PACA_INIT(number) \
+{ \
+ PACA_INIT_COMMON(number, 1, STAB0_PHYS_ADDR, (u64)&initial_stab) \
+}
#endif
struct paca_struct paca[] = {
#endif
struct paca_struct paca[] = {
- PACA_INIT(0),
+
BOOTCPU_
PACA_INIT(0),
#if NR_CPUS > 1
PACA_INIT( 1), PACA_INIT( 2), PACA_INIT( 3),
#if NR_CPUS > 4
#if NR_CPUS > 1
PACA_INIT( 1), PACA_INIT( 2), PACA_INIT( 3),
#if NR_CPUS > 4