>>>>> "Jan-Benedict" == Jan-Benedict Glaw writes: Jan-Benedict> I've looked at ./include/asm-i386/system.h which does some black Jan-Benedict> magic with it, and I don't really understand that. However, the Jan-Benedict> result is that the xchg gets optimized away, rendering at least Can you try with this patch ... --- linux/include/asm-i386/system.h.orig.0 Mon Dec 17 15:03:38 2001 +++ linux/include/asm-i386/system.h Mon Dec 17 15:16:58 2001 @@ -205,21 +205,15 @@ static inline unsigned long __xchg(unsig switch (size) { case 1: __asm__ __volatile__("xchgb %b0,%1" - :"=q" (x) - :"m" (*__xg(ptr)), "0" (x) - :"memory"); + :"+q" (x),"=m" (*__xg(ptr))); break; case 2: __asm__ __volatile__("xchgw %w0,%1" - :"=r" (x) - :"m" (*__xg(ptr)), "0" (x) - :"memory"); + :"+r" (x),"=m" (*__xg(ptr))); break; case 4: __asm__ __volatile__("xchgl %0,%1" - :"=r" (x) - :"m" (*__xg(ptr)), "0" (x) - :"memory"); + :"+r" (x), "=m" (*__xg(ptr))); break; } return x; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/