From: sos22@douglas.cl.cam.ac.uk Date: Wed, 25 Jan 2006 16:14:19 +0000 (+0100) Subject: Change domain_crash to say where it was called from. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16533 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=38979d4396dd92f8bacbd894e388686771f73ba6;p=xen.git Change domain_crash to say where it was called from. Signed-off-by: Steven Smith, sos22@cam.ac.uk --- diff --git a/xen/arch/x86/x86_32/entry.S b/xen/arch/x86/x86_32/entry.S index e178d7383e..4e1805dd5a 100644 --- a/xen/arch/x86/x86_32/entry.S +++ b/xen/arch/x86/x86_32/entry.S @@ -477,6 +477,14 @@ nvm86_3:/* Rewrite our stack frame and return to ring 1. */ .long FLT24,domain_crash_synchronous , FLT25,domain_crash_synchronous .previous +domain_crash_synchronous_string: + .asciz "domain_crash_sync from entry.S %lx\n" + +domain_crash_synchronous: + pushl $domain_crash_synchronous_string + call printf + jmp __domain_crash_synchronous + ALIGN process_guest_exception_and_events: leal VCPU_trap_bounce(%ebx),%edx diff --git a/xen/common/domain.c b/xen/common/domain.c index bc6eebe41c..881133b7d6 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -139,7 +139,7 @@ void domain_kill(struct domain *d) } -void domain_crash(struct domain *d) +void __domain_crash(struct domain *d) { if ( d == current->domain ) { @@ -157,9 +157,9 @@ void domain_crash(struct domain *d) } -void domain_crash_synchronous(void) +void __domain_crash_synchronous(void) { - domain_crash(current->domain); + __domain_crash(current->domain); for ( ; ; ) do_softirq(); } diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 7005177f4c..4cb1989d76 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -238,13 +238,21 @@ extern void domain_pause_for_debugger(void); * caller is the specified domain. The domain is not synchronously descheduled * from any processor. */ -extern void domain_crash(struct domain *d); +extern void __domain_crash(struct domain *d); +#define domain_crash(d) do { \ + printf("domain_crash called from %s:%d\n", __FILE__, __LINE__); \ + __domain_crash(d); \ +} while (0) /* * Mark current domain as crashed and synchronously deschedule from the local * processor. This function never returns. */ -extern void domain_crash_synchronous(void) __attribute__((noreturn)); +extern void __domain_crash_synchronous(void) __attribute__((noreturn)); +#define domain_crash_synchronous() do { \ + printf("domain_crash_sync called from %s:%d\n", __FILE__, __LINE__); \ + __domain_crash_synchronous(); \ +} while (0) void new_thread(struct vcpu *d, unsigned long start_pc,