summaryrefslogtreecommitdiff
path: root/arch/ia64
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2010-08-12 09:14:56 -0700
committerTony Luck <tony.luck@intel.com>2010-08-12 09:14:56 -0700
commitb680f0979ff571836f3616dfca727b516bcc5d3d (patch)
treeac0c90740fdb8de42c91d47fae0ef4c2bf824144 /arch/ia64
parent5af568cbd55f60b5a1d174f621b273e4f585dc35 (diff)
downloadlinux-3.10-b680f0979ff571836f3616dfca727b516bcc5d3d.tar.gz
linux-3.10-b680f0979ff571836f3616dfca727b516bcc5d3d.tar.bz2
linux-3.10-b680f0979ff571836f3616dfca727b516bcc5d3d.zip
[IA64] Fix rwsem: RWSEM_WAITING_BIAS must not be unsigned.
Some nice improvements were made to rwsem in commit: 424acaaeb3a3932d64a9b4bd59df6cf72c22d8f3 rwsem: wake queued readers when writer blocks on active read lock but this change overlooked that ia64 had defined RWSEM_WAITING_BIAS as an unsigned value, while the new code required a signed value (as it is in every other architecture). This fix suggested by the original patch author: Michel Lespinasse. Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/include/asm/rwsem.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/ia64/include/asm/rwsem.h b/arch/ia64/include/asm/rwsem.h
index e8762688e8e..215d5454c7d 100644
--- a/arch/ia64/include/asm/rwsem.h
+++ b/arch/ia64/include/asm/rwsem.h
@@ -40,9 +40,9 @@ struct rw_semaphore {
};
#define RWSEM_UNLOCKED_VALUE __IA64_UL_CONST(0x0000000000000000)
-#define RWSEM_ACTIVE_BIAS __IA64_UL_CONST(0x0000000000000001)
-#define RWSEM_ACTIVE_MASK __IA64_UL_CONST(0x00000000ffffffff)
-#define RWSEM_WAITING_BIAS -__IA64_UL_CONST(0x0000000100000000)
+#define RWSEM_ACTIVE_BIAS (1L)
+#define RWSEM_ACTIVE_MASK (0xffffffffL)
+#define RWSEM_WAITING_BIAS (-0x100000000L)
#define RWSEM_ACTIVE_READ_BIAS RWSEM_ACTIVE_BIAS
#define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)