# HG changeset patch
# User Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
# Node ID 0f4c73a1e92a195bd90beff00c1e1c669e6f4a6a
# Parent f7096a6728e61aa56282fa259d893e17b265b7e3
[XEN][POWERPC] Keepin it cool: sleep the processor when halt fails
Signed-off-by: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>
---
xen/arch/powerpc/domain.c | 6 +++---
xen/arch/powerpc/exceptions.h | 3 +++
xen/arch/powerpc/setup.c | 2 --
3 files changed, 6 insertions(+), 5 deletions(-)
diff -r f7096a6728e6 -r 0f4c73a1e92a xen/arch/powerpc/domain.c
--- a/xen/arch/powerpc/domain.c Fri Oct 06 12:15:06 2006 -0500
+++ b/xen/arch/powerpc/domain.c Wed Oct 04 14:06:14 2006 -0400
@@ -34,6 +34,7 @@
#include <asm/current.h>
#include <asm/hcalls.h>
#include "rtas.h"
+#include "exceptions.h"
#define next_arg(fmt, args) ({ \
unsigned long __arg; \
@@ -47,7 +48,6 @@
} \
__arg; \
})
-extern void idle_loop(void);
unsigned long hypercall_create_continuation(unsigned int op,
const char *format, ...)
@@ -99,7 +99,8 @@ static void machine_fail(const char *s)
static void machine_fail(const char *s)
{
printf("%s failed, manual powercycle required!\n", s);
- while(1);
+ for (;;)
+ sleep();
}
void machine_halt(void)
@@ -302,7 +303,6 @@ void arch_dump_vcpu_info(struct vcpu *v)
{
}
-extern void sleep(void);
static void safe_halt(void)
{
int cpu = smp_processor_id();
diff -r f7096a6728e6 -r 0f4c73a1e92a xen/arch/powerpc/exceptions.h
--- a/xen/arch/powerpc/exceptions.h Fri Oct 06 12:15:06 2006 -0500
+++ b/xen/arch/powerpc/exceptions.h Wed Oct 04 14:06:14 2006 -0400
@@ -43,8 +43,11 @@ extern void program_exception(
struct cpu_user_regs *regs, unsigned long cookie);
extern long xen_hvcall_jump(struct cpu_user_regs *regs, ulong address);
+
extern void *mambo_memset(void *, int, ulong);
extern void *mambo_memcpy(void *, const void *, ulong);
+extern void sleep(void);
+extern void idle_loop(void);
extern ulong *__hypercall_table[];
diff -r f7096a6728e6 -r 0f4c73a1e92a xen/arch/powerpc/setup.c
--- a/xen/arch/powerpc/setup.c Fri Oct 06 12:15:06 2006 -0500
+++ b/xen/arch/powerpc/setup.c Wed Oct 04 14:06:14 2006 -0400
@@ -196,8 +196,6 @@ static void __init start_of_day(void)
schedulers_start();
}
-extern void idle_loop(void);
-
void startup_cpu_idle_loop(void)
{
struct vcpu *v = current;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|