From: Alyona Romanenko Date: Wed, 2 Mar 2016 22:01:50 +0000 (-0500) Subject: staging: lustre: issue in the offset in lnet match hash table X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=5412d816dac18b9f035a753f54fc0e084c8cf376;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git staging: lustre: issue in the offset in lnet match hash table the offset in hash table is overflowed for no wildcard portal. The offset for no wildcard has been corrected as for wildcard in the LU-1622 Signed-off-by: Alyona Romanenko Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7774 Reviewed-on: http://review.whamcloud.com/18422 Reviewed-by: Doug Oucharek Reviewed-by: James Simmons Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/lustre/lnet/lnet/lib-ptl.c b/drivers/staging/lustre/lnet/lnet/lib-ptl.c index 2b41205825fc..3947e8b711c0 100644 --- a/drivers/staging/lustre/lnet/lnet/lib-ptl.c +++ b/drivers/staging/lustre/lnet/lnet/lib-ptl.c @@ -360,16 +360,15 @@ lnet_mt_match_head(struct lnet_match_table *mtable, lnet_process_id_t id, __u64 mbits) { struct lnet_portal *ptl = the_lnet.ln_portals[mtable->mt_portal]; + unsigned long hash = mbits; - if (lnet_ptl_is_wildcard(ptl)) { - return &mtable->mt_mhash[mbits & LNET_MT_HASH_MASK]; - } else { - unsigned long hash = mbits + id.nid + id.pid; + if (!lnet_ptl_is_wildcard(ptl)) { + hash += id.nid + id.pid; LASSERT(lnet_ptl_is_unique(ptl)); hash = hash_long(hash, LNET_MT_HASH_BITS); - return &mtable->mt_mhash[hash]; } + return &mtable->mt_mhash[hash & LNET_MT_HASH_MASK]; } int