OSDN Git Service

net: sched: cls_u32: use hash_ptr() for tc_u_hash
authorArnd Bergmann <arnd@arndb.de>
Wed, 18 Oct 2017 08:33:37 +0000 (10:33 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 20 Oct 2017 07:36:00 +0000 (08:36 +0100)
After the change to the tp hash, we now get a build warning
on 32-bit architectures:

net/sched/cls_u32.c: In function 'tc_u_hash':
net/sched/cls_u32.c:338:17: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
  return hash_64((u64) tp->chain->block, U32_HASH_SHIFT);

Using hash_ptr() instead of hash_64() lets us drop the cast
and fixes the warning while still resulting in the same hash
value.

Fixes: 7fa9d974f3c2 ("net: sched: cls_u32: use block instead of q in tc_u_common")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_u32.c

index b6d4606..49d96b4 100644 (file)
@@ -335,7 +335,7 @@ static struct hlist_head *tc_u_common_hash;
 
 static unsigned int tc_u_hash(const struct tcf_proto *tp)
 {
-       return hash_64((u64) tp->chain->block, U32_HASH_SHIFT);
+       return hash_ptr(tp->chain->block, U32_HASH_SHIFT);
 }
 
 static struct tc_u_common *tc_u_common_find(const struct tcf_proto *tp)