# HG changeset patch
# User Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
# Node ID 0e83ba62a3a5c3b22ae99ebb6b6b7fe604ddb447
# Parent 04ed07cd741a27041e52c810e5e0ca66b80ef157
[XEN][POWERPC] Be a little smarter with unimplemented()
Signed-off-by: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
---
xen/arch/powerpc/smp.c | 16 +++++++++++-----
xen/arch/powerpc/time.c | 1 -
xen/include/asm-powerpc/debugger.h | 8 +++++++-
3 files changed, 18 insertions(+), 7 deletions(-)
diff -r 04ed07cd741a -r 0e83ba62a3a5 xen/arch/powerpc/smp.c
--- a/xen/arch/powerpc/smp.c Fri Sep 22 11:10:28 2006 -0400
+++ b/xen/arch/powerpc/smp.c Fri Sep 22 11:51:56 2006 -0400
@@ -32,16 +32,21 @@ void __flush_tlb_mask(cpumask_t mask, un
unimplemented();
}
-void smp_send_event_check_mask(cpumask_t cpu_mask)
+void smp_send_event_check_mask(cpumask_t mask)
{
- unimplemented();
+ cpu_clear(smp_processor_id(), mask);
+ if (!cpus_empty(mask))
+ unimplemented();
}
-int smp_call_function(void (*func) (void *info), void *info, int unused,
+
+int smp_call_function(void (*func) (void *info), void *info, int retry,
int wait)
{
- unimplemented();
- return 0;
+ cpumask_t allbutself = cpu_online_map;
+ cpu_clear(smp_processor_id(), allbutself);
+
+ return on_selected_cpus(allbutself, func, info, retry, wait);
}
void smp_send_stop(void)
@@ -56,5 +61,6 @@ int on_selected_cpus(
int retry,
int wait)
{
+ unimplemented();
return 0;
}
diff -r 04ed07cd741a -r 0e83ba62a3a5 xen/arch/powerpc/time.c
--- a/xen/arch/powerpc/time.c Fri Sep 22 11:10:28 2006 -0400
+++ b/xen/arch/powerpc/time.c Fri Sep 22 11:51:56 2006 -0400
@@ -93,5 +93,4 @@ void do_settime(unsigned long secs, unsi
void update_vcpu_system_time(struct vcpu *v)
{
- unimplemented();
}
diff -r 04ed07cd741a -r 0e83ba62a3a5 xen/include/asm-powerpc/debugger.h
--- a/xen/include/asm-powerpc/debugger.h Fri Sep 22 11:10:28 2006 -0400
+++ b/xen/include/asm-powerpc/debugger.h Fri Sep 22 11:51:56 2006 -0400
@@ -41,6 +41,13 @@ static inline void debugger_trap_immedia
__builtin_trap();
}
+static inline void unimplemented(void)
+{
+#ifdef VERBOSE
+ dump_execution_state();
+#endif
+}
+
static inline void show_execution_state(struct cpu_user_regs *regs)
{
show_registers(regs);
@@ -49,7 +56,6 @@ extern void __warn(char *file, int line)
extern void __warn(char *file, int line);
#define WARN() __warn(__FILE__, __LINE__)
#define WARN_ON(_p) do { if (_p) WARN(); } while ( 0 )
-#define unimplemented() WARN()
#define FORCE_CRASH() debugger_trap_immediate()
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|