cvs commit: src/sys/ia64/include atomic.h

Bruce M. Simpson bms at FreeBSD.org
Wed May 28 16:43:14 UTC 2008


Marcel Moolenaar wrote:
> ...the cmpxchg instruction was comparing
>   0x0000000080000000LU to 0xffffffff80000000LU and obviously didn't
>   perform the exchange.
>   
>   ...Subsequent locking requests found rw_state non-zero
>   and the thread in question entered the kernel and block indefinitely.


Man, this must have been a total nightmare to track down. I guess the 
bigger question is, why was gcc sign-extending a constant marked U in 
the first place?


More information about the cvs-src mailing list