diff options
Diffstat (limited to 'net/ipv4/fib_trie.c')
-rw-r--r-- | net/ipv4/fib_trie.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c index a96e5ec211a..271c89bdf04 100644 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c | |||
@@ -1342,7 +1342,7 @@ err: | |||
1342 | /* should be called with rcu_read_lock */ | 1342 | /* should be called with rcu_read_lock */ |
1343 | static int check_leaf(struct trie *t, struct leaf *l, | 1343 | static int check_leaf(struct trie *t, struct leaf *l, |
1344 | t_key key, const struct flowi *flp, | 1344 | t_key key, const struct flowi *flp, |
1345 | struct fib_result *res) | 1345 | struct fib_result *res, int fib_flags) |
1346 | { | 1346 | { |
1347 | struct leaf_info *li; | 1347 | struct leaf_info *li; |
1348 | struct hlist_head *hhead = &l->list; | 1348 | struct hlist_head *hhead = &l->list; |
@@ -1356,7 +1356,7 @@ static int check_leaf(struct trie *t, struct leaf *l, | |||
1356 | if (l->key != (key & ntohl(mask))) | 1356 | if (l->key != (key & ntohl(mask))) |
1357 | continue; | 1357 | continue; |
1358 | 1358 | ||
1359 | err = fib_semantic_match(&li->falh, flp, res, plen); | 1359 | err = fib_semantic_match(&li->falh, flp, res, plen, fib_flags); |
1360 | 1360 | ||
1361 | #ifdef CONFIG_IP_FIB_TRIE_STATS | 1361 | #ifdef CONFIG_IP_FIB_TRIE_STATS |
1362 | if (err <= 0) | 1362 | if (err <= 0) |
@@ -1372,7 +1372,7 @@ static int check_leaf(struct trie *t, struct leaf *l, | |||
1372 | } | 1372 | } |
1373 | 1373 | ||
1374 | int fib_table_lookup(struct fib_table *tb, const struct flowi *flp, | 1374 | int fib_table_lookup(struct fib_table *tb, const struct flowi *flp, |
1375 | struct fib_result *res) | 1375 | struct fib_result *res, int fib_flags) |
1376 | { | 1376 | { |
1377 | struct trie *t = (struct trie *) tb->tb_data; | 1377 | struct trie *t = (struct trie *) tb->tb_data; |
1378 | int ret; | 1378 | int ret; |
@@ -1399,7 +1399,7 @@ int fib_table_lookup(struct fib_table *tb, const struct flowi *flp, | |||
1399 | 1399 | ||
1400 | /* Just a leaf? */ | 1400 | /* Just a leaf? */ |
1401 | if (IS_LEAF(n)) { | 1401 | if (IS_LEAF(n)) { |
1402 | ret = check_leaf(t, (struct leaf *)n, key, flp, res); | 1402 | ret = check_leaf(t, (struct leaf *)n, key, flp, res, fib_flags); |
1403 | goto found; | 1403 | goto found; |
1404 | } | 1404 | } |
1405 | 1405 | ||
@@ -1424,7 +1424,7 @@ int fib_table_lookup(struct fib_table *tb, const struct flowi *flp, | |||
1424 | } | 1424 | } |
1425 | 1425 | ||
1426 | if (IS_LEAF(n)) { | 1426 | if (IS_LEAF(n)) { |
1427 | ret = check_leaf(t, (struct leaf *)n, key, flp, res); | 1427 | ret = check_leaf(t, (struct leaf *)n, key, flp, res, fib_flags); |
1428 | if (ret > 0) | 1428 | if (ret > 0) |
1429 | goto backtrace; | 1429 | goto backtrace; |
1430 | goto found; | 1430 | goto found; |