hmm, how did this ever work?!
I your problem with a direct caller of __xchg() or is this thru the macro xchg()?

I notice we have the macro wrong (at least in my copy of xen source):
#define xchg(ptr,v) ((__typeof__(*(ptr)))__xchg((unsigned long)(v), (ptr),sizeof(*(ptr))))

where it should be (from Linux):
  #define xchg(ptr,x)                                                        \
  ({                                                                         \
     __typeof__(*(ptr)) _x_ = (x);                                           \
(__typeof__(*(ptr))) __xchg((ptr), (unsigned long)_x_, sizeof(* (ptr))); \

Will that change fix your issue?

I'd rather not change __xchg().


On Apr 4, 2007, at 2:04 AM, Jerone Young wrote:

This fixes the api for __xchg function in system.h so that PPC Xen can
build correctly in Xen unstable. This is the same API used in the __xchg
on x86.

Signed-off-by: Jerone Young <[EMAIL PROTECTED]>

diff -r 7e431ea834a8 xen/include/asm-powerpc/system.h
--- a/xen/include/asm-powerpc/system.h  Tue Apr 03 13:22:37 2007 +0100
+++ b/xen/include/asm-powerpc/system.h  Wed Jan 29 05:37:30 2031 -0600
@@ -73,7 +73,7 @@ extern void __xchg_called_with_bad_point
 extern void __xchg_called_with_bad_pointer(void);

 static __inline__ unsigned long
-__xchg(volatile void *ptr, unsigned long x, int size)
+__xchg(unsigned long x, volatile void *ptr, int size)
     switch (size) {
     case 4:

Xen-ppc-devel mailing list

Xen-ppc-devel mailing list

Reply via email to