]> git.baikalelectronics.ru Git - kernel.git/commit
ipv4: Restore fib_trie_flush_external function and fix call ordering
authorAlexander Duyck <alexander.h.duyck@intel.com>
Tue, 15 Nov 2016 10:46:06 +0000 (05:46 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Nov 2016 18:24:50 +0000 (13:24 -0500)
commitca7605f92e83c881f2199bcdc4a6ac0769f6415d
tree0e2000c39bd5f66490cdc83edf46fbaa57c0fb1b
parent4eaf0048bc4c42d08a91735c2bd3167457004133
ipv4: Restore fib_trie_flush_external function and fix call ordering

The patch that removed the FIB offload infrastructure was a bit too
aggressive and also removed code needed to clean up us splitting the table
if additional rules were added.  Specifically the function
fib_trie_flush_external was called at the end of a new rule being added to
flush the foreign trie entries from the main trie.

I updated the code so that we only call fib_trie_flush_external on the main
table so that we flush the entries for local from main.  This way we don't
call it for every rule change which is what was happening previously.

Fixes: b345e44574fa1 ("switchdev: remove FIB offload infrastructure")
Reported-by: Eric Dumazet <edumazet@google.com>
Cc: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip_fib.h
net/ipv4/fib_frontend.c
net/ipv4/fib_trie.c