diff options
author | Tony Luck <tony.luck@intel.com> | 2010-08-12 09:14:56 -0700 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2010-08-12 09:14:56 -0700 |
commit | b680f0979ff571836f3616dfca727b516bcc5d3d (patch) | |
tree | ac0c90740fdb8de42c91d47fae0ef4c2bf824144 /arch/ia64 | |
parent | 5af568cbd55f60b5a1d174f621b273e4f585dc35 (diff) | |
download | linux-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.h | 6 |
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) |