diff mbox series

netlink: fix hash::nelems check

Message ID 1536417194-20828-1-git-send-email-lirongqing@baidu.com
State Changes Requested, archived
Delegated to: David Miller
Headers show
Series netlink: fix hash::nelems check | expand

Commit Message

Li RongQing Sept. 8, 2018, 2:33 p.m. UTC
The type of hash::nelems has been changed from size_t to atom_t
which is int in fact, and impossible to be bigger than UINT_MAX

Fixes: 97defe1ecf86 ("rhashtable: Per bucket locks & deferred expansion/shrinking")
Signed-off-by: Zhang Yu <zhangyu31@baidu.com>
Signed-off-by: Li RongQing <lirongqing@baidu.com>
---
 net/netlink/af_netlink.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Li RongQing Sept. 10, 2018, 1:36 a.m. UTC | #1
after reconsider, I think we can remove this check directly, since
rht_grow_above_max() will be called to check the overflow again in
rhashtable_insert_one.

and atomic_read(&table->hash.nelems) always compares with unsigned
value, will force to switch unsigned, so the hash.nelems overflows can
be accepted.

-Rong
diff mbox series

Patch

diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index b4a29bcc33b9..412437baee63 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -575,8 +575,7 @@  static int netlink_insert(struct sock *sk, u32 portid)
 		goto err;
 
 	err = -ENOMEM;
-	if (BITS_PER_LONG > 32 &&
-	    unlikely(atomic_read(&table->hash.nelems) >= UINT_MAX))
+	if (unlikely(atomic_read(&table->hash.nelems) == INT_MAX))
 		goto err;
 
 	nlk_sk(sk)->portid = portid;