Hi Jeff, Sorry I've been on vacation so didn't reply sooner - some comments below...
On Tue, 27 Apr 2010 16:50:49 -0400 Jeff Squyres <jsquy...@cisco.com> wrote: > ----- > #if OPAL_ENABLE_DEBUG > do { > ftr->seq = ep->eager_rdma_remote.seq; > } while (!OPAL_ATOMIC_CMPSET_32(&ep->eager_rdma_remote.seq, > ftr->seq, ftr->seq+1)); #endif > ----- > > This line produces the following compiler warning: > > ----- > ./btl_openib_endpoint.h:505: warning: pointer targets in passing > argument 1 of ‘opal_atomic_cmpset_32’ differ in signedness ----- > > Line 505 is the ATOMIC_CMPSET line. Chris -- you last touched this > line. Can you fix? Previously the counter was incremented non atomically which when run multithreaded caused spurious warnings about sequence numbers not being correct. Now I can get rid of the warnings if I change the line to: } while (!OPAL_ATOMIC_CMPSET_32((int32_t*)&ep->eager_rdma_remote.seq, (int32_t)ftr->seq, (int32_t)(ftr->seq+1))); The problem is that the underlying atomic cmpset takes an signed int32_t but the counter is a uint32_t. I think its ok to just cast like this as it should still wrap correctly? Alternatively could add an unsigned version of atomic_cmpset_32 but seems a bit like overkill for what essentially is a bit of debug code. Any preference? Regards, Chris -- cy...@au.ibm.com