Messages in this thread | | | Subject | Re: [PATCH LINUX v5] xen: event channel arrays are xen_ulong_t and not unsigned long | From | Ian Campbell <> | Date | Thu, 7 Mar 2013 07:17:42 +0000 |
| |
On Thu, 2013-03-07 at 03:17 +0000, Will Deacon wrote: > > I looked and couldn't see an existing 64 bit xchg, was I looking in the > > wrong place? Ah, wait, I see atomic64_xchg now. But that needs an > > atomic64_t while I have a xen_ulong_t (which == 64 bits on ARM). This is > > a kernel<->hypervisor ABI so I can't just change it to an atomic64_t. I > > suppose I could cast (see below, untested) but that seems rather icky. > > You can play some container_of tricks, like we do in cmpxchg64 to get this > right. Alternatively, we could look at an xchg8 implementation which some > other architectures have (although they seem to be 64-bit machines).
I went with the container of trick + appropriate Kconfig depends and sent a patch out a couple of seconds ago.
Thanks for your help/advice!
Ian.
| |