WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ppc-devel

Re: [XenPPC] [PATCH] Fix xchg api to for Xen-unstable


On Apr 4, 2007, at 10:43 PM, Jerone Young wrote:

On Wed, 2007-04-04 at 08:57 -0400, Jimi Xenidis wrote:
hmm, how did this ever work?!
I your problem with a direct caller of __xchg() or is this thru the
macro xchg()?

The caller is in common/domain.c @ line 310:

/* Already dying? Then bail. */
    if ( xchg(&d->is_dying, 1) )
    {
        domain_unpause(d);
        return;
    }


The current macro matches that one in x86. But the parameters we have
for __xchg are not in the same order. So one has to change to be right.


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?

Doubtful..see use of code above.

Why?




_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel