[IA64] Fix 64-bit atomic routines to return "long"
authorTony Luck <tony.luck@intel.com>
Fri, 13 Aug 2010 23:41:07 +0000 (16:41 -0700)
committerTony Luck <tony.luck@intel.com>
Fri, 13 Aug 2010 23:41:07 +0000 (16:41 -0700)
These have been broken (returning "int") since the dawn of
time. But there were no users that needed the whole value
until commit
 424acaaeb3a3932d64a9b4bd59df6cf72c22d8f3
 rwsem: wake queued readers when writer blocks on active read lock

made this change:

-           (rwsem_atomic_update(0, sem) & RWSEM_ACTIVE_MASK))
-               /* Someone grabbed the sem already */
+           rwsem_atomic_update(0, sem) < RWSEM_WAITING_BIAS)
+               /* Someone grabbed the sem for write already */

RWSEM_ACTIVE_MASK is 0xffffffffL, so the old code only looked
at the low order 32-bits. The new code needs to see all 64 bits.

Signed-off-by: Tony Luck <tony.luck@intel.com>

No differences found