fib_trie: Use index & (~0ul << n->bits) instead of index >> n->bits
authorAlexander Duyck <alexander.h.duyck@redhat.com>
Thu, 22 Jan 2015 23:51:08 +0000 (15:51 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 25 Jan 2015 22:47:15 +0000 (14:47 -0800)
commitb3832117b4b61374fac08692f1b1a620088342dd
tree836e0e535f9fb38c60808b21851923ff3d2744e2
parentbc579ae5f902e7a17d4a02ca32779c90604d57b9
fib_trie: Use index & (~0ul << n->bits) instead of index >> n->bits

In doing performance testing and analysis of the changes I recently found
that by shifting the index I had created an unnecessary dependency.

I have updated the code so that we instead shift a mask by bits and then
just test against that as that should save us about 2 CPU cycles since we
can generate the mask while the key and pos are being processed.

Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fib_trie.c