]> git.baikalelectronics.ru Git - kernel.git/commit
fib_trie: Add collapse() and should_collapse() to resize
authorAlexander Duyck <alexander.h.duyck@redhat.com>
Thu, 22 Jan 2015 23:51:26 +0000 (15:51 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 25 Jan 2015 22:47:16 +0000 (14:47 -0800)
commitcfa60e3550097f8829786a278984e3f744ca6dc5
treee4e0bf113455421a25f11275f25a9bf0dda2aae8
parent5138c20fbb397fd51f7ee315bd26396c93b5bb4a
fib_trie: Add collapse() and should_collapse() to resize

This patch really does two things.

First it pulls the logic for determining if we should collapse one node out
of the tree and the actual code doing the collapse into a separate pair of
functions.  This helps to make the changes to these areas more readable.

Second it encodes the upper 32b of the empty_children value onto the
full_children value in the case of bits == KEYLENGTH.  By doing this we are
able to handle the case of a 32b node where empty_children would appear to
be 0 when it was actually 1ul << 32.

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