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
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
ia64
/
kernel
/
head.S
diff --git
a/arch/ia64/kernel/head.S
b/arch/ia64/kernel/head.S
index
8d3a929
..
dded6f2
100644
(file)
--- a/
arch/ia64/kernel/head.S
+++ b/
arch/ia64/kernel/head.S
@@
-19,13
+19,12
@@
* Support for CPU Hotplug
*/
* Support for CPU Hotplug
*/
-#include <linux/config.h>
#include <asm/asmmacro.h>
#include <asm/fpu.h>
#include <asm/kregs.h>
#include <asm/mmu_context.h>
#include <asm/asmmacro.h>
#include <asm/fpu.h>
#include <asm/kregs.h>
#include <asm/mmu_context.h>
-#include <asm/offsets.h>
+#include <asm/
asm-
offsets.h>
#include <asm/pal.h>
#include <asm/pgtable.h>
#include <asm/processor.h>
#include <asm/pal.h>
#include <asm/pgtable.h>
#include <asm/processor.h>
@@
-198,6
+197,11
@@
start_ap:
;;
srlz.i
;;
;;
srlz.i
;;
+ {
+ flushrs // must be first insn in group
+ srlz.i
+ }
+ ;;
/*
* Save the region registers, predicate before they get clobbered
*/
/*
* Save the region registers, predicate before they get clobbered
*/
@@
-352,6
+356,7
@@
start_ap:
mov ar.rsc=0 // place RSE in enforced lazy mode
;;
loadrs // clear the dirty partition
mov ar.rsc=0 // place RSE in enforced lazy mode
;;
loadrs // clear the dirty partition
+ mov IA64_KR(PER_CPU_DATA)=r0 // clear physical per-CPU base
;;
mov ar.bspstore=r2 // establish the new RSE stack
;;
;;
mov ar.bspstore=r2 // establish the new RSE stack
;;
@@
-362,6
+367,12
@@
start_ap:
;;
(isBP) st8 [r2]=r28 // save the address of the boot param area passed by the bootloader
;;
(isBP) st8 [r2]=r28 // save the address of the boot param area passed by the bootloader
+#ifdef CONFIG_XEN
+ // Note: isBP is used by the subprogram.
+ br.call.sptk.many rp=early_xen_setup
+ ;;
+#endif
+
#ifdef CONFIG_SMP
(isAP) br.call.sptk.many rp=start_secondary
.ret0:
#ifdef CONFIG_SMP
(isAP) br.call.sptk.many rp=start_secondary
.ret0:
@@
-853,7
+864,6
@@
END(__ia64_init_fpu)
*/
GLOBAL_ENTRY(ia64_switch_mode_phys)
{
*/
GLOBAL_ENTRY(ia64_switch_mode_phys)
{
- alloc r2=ar.pfs,0,0,0,0
rsm psr.i | psr.ic // disable interrupts and interrupt collection
mov r15=ip
}
rsm psr.i | psr.ic // disable interrupts and interrupt collection
mov r15=ip
}
@@
-902,7
+912,6
@@
END(ia64_switch_mode_phys)
*/
GLOBAL_ENTRY(ia64_switch_mode_virt)
{
*/
GLOBAL_ENTRY(ia64_switch_mode_virt)
{
- alloc r2=ar.pfs,0,0,0,0
rsm psr.i | psr.ic // disable interrupts and interrupt collection
mov r15=ip
}
rsm psr.i | psr.ic // disable interrupts and interrupt collection
mov r15=ip
}
@@
-1060,7
+1069,7
@@
SET_REG(b5);
* the clobber lists for spin_lock() in include/asm-ia64/spinlock.h.
*/
* the clobber lists for spin_lock() in include/asm-ia64/spinlock.h.
*/
-#if
__GNUC__ < 3 ||
(__GNUC__ == 3 && __GNUC_MINOR__ < 3)
+#if (__GNUC__ == 3 && __GNUC_MINOR__ < 3)
GLOBAL_ENTRY(ia64_spinlock_contention_pre3_4)
.prologue
GLOBAL_ENTRY(ia64_spinlock_contention_pre3_4)
.prologue