diff options
author | Roland Dreier <roland@topspin.com> | 2005-04-17 00:26:10 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-17 00:26:10 +0200 |
commit | de0d9641c4f164009b62ecc342f9776d44e78b6a (patch) | |
tree | 28c21b7b7628861a735473ae7c8bf0baf588ab8f /drivers/infiniband | |
parent | [PATCH] IB: remove unneeded includes (diff) | |
download | linux-de0d9641c4f164009b62ecc342f9776d44e78b6a.tar.xz linux-de0d9641c4f164009b62ecc342f9776d44e78b6a.zip |
[PATCH] IB: Fix FMR pool crash
Mask bits correctly from jhash result in ib_fmr_hash() so that the
computed bucket index is within our hash table. This fixes an SDP
crash.
Signed-off-by: Roland Dreier <roland@topspin.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/core/fmr_pool.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c index 2e9469f18926..59ee001ff05b 100644 --- a/drivers/infiniband/core/fmr_pool.c +++ b/drivers/infiniband/core/fmr_pool.c @@ -103,9 +103,8 @@ struct ib_fmr_pool { static inline u32 ib_fmr_hash(u64 first_page) { - return jhash_2words((u32) first_page, - (u32) (first_page >> 32), - 0); + return jhash_2words((u32) first_page, (u32) (first_page >> 32), 0) & + (IB_FMR_HASH_SIZE - 1); } /* Caller must hold pool_lock */ |