From: Eric Dumazet Date: Thu, 17 Nov 2016 17:48:30 +0000 (-0800) Subject: net_sched: sch_fq: use hash_ptr() X-Git-Tag: v4.10-rc1~202^2~239 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=29c58472ec2af073c4f858a61236fbedfc2923ac;p=platform%2Fkernel%2Flinux-exynos.git net_sched: sch_fq: use hash_ptr() When I wrote sch_fq.c, hash_ptr() on 64bit arches was awful, and I chose hash_32(). Linus Torvalds and George Spelvin fixed this issue, so we can use hash_ptr() to get more entropy on 64bit arches with Terabytes of memory, and avoid the cast games. Signed-off-by: Eric Dumazet Cc: Hugh Dickins Signed-off-by: David S. Miller --- diff --git a/net/sched/sch_fq.c b/net/sched/sch_fq.c index 18e7524..86309a3 100644 --- a/net/sched/sch_fq.c +++ b/net/sched/sch_fq.c @@ -245,7 +245,7 @@ static struct fq_flow *fq_classify(struct sk_buff *skb, struct fq_sched_data *q) skb_orphan(skb); } - root = &q->fq_root[hash_32((u32)(long)sk, q->fq_trees_log)]; + root = &q->fq_root[hash_ptr(sk, q->fq_trees_log)]; if (q->flows >= (2U << q->fq_trees_log) && q->inactive_flows > q->flows/2) @@ -599,7 +599,7 @@ static void fq_rehash(struct fq_sched_data *q, kmem_cache_free(fq_flow_cachep, of); continue; } - nroot = &new_array[hash_32((u32)(long)of->sk, new_log)]; + nroot = &new_array[hash_ptr(of->sk, new_log)]; np = &nroot->rb_node; parent = NULL;