fib: use indirect call wrappers in the most common fib_rules_ops
This avoids another inderect call per RX packet which save us around 20-40 ns. Changelog: v1 -> v2: - Move declaraions to fib_rules.h to remove warnings Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Brian Vazquez <brianvv@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
608b4adab1
commit
b9aaec8f0b
@@ -10,6 +10,7 @@
|
||||
#include <net/flow.h>
|
||||
#include <net/rtnetlink.h>
|
||||
#include <net/fib_notifier.h>
|
||||
#include <linux/indirect_call_wrapper.h>
|
||||
|
||||
struct fib_kuid_range {
|
||||
kuid_t start;
|
||||
@@ -203,4 +204,21 @@ int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
struct netlink_ext_ack *extack);
|
||||
int fib_nl_delrule(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
struct netlink_ext_ack *extack);
|
||||
|
||||
INDIRECT_CALLABLE_DECLARE(int fib6_rule_match(struct fib_rule *rule,
|
||||
struct flowi *fl, int flags));
|
||||
INDIRECT_CALLABLE_DECLARE(int fib4_rule_match(struct fib_rule *rule,
|
||||
struct flowi *fl, int flags));
|
||||
|
||||
INDIRECT_CALLABLE_DECLARE(int fib6_rule_action(struct fib_rule *rule,
|
||||
struct flowi *flp, int flags,
|
||||
struct fib_lookup_arg *arg));
|
||||
INDIRECT_CALLABLE_DECLARE(int fib4_rule_action(struct fib_rule *rule,
|
||||
struct flowi *flp, int flags,
|
||||
struct fib_lookup_arg *arg));
|
||||
|
||||
INDIRECT_CALLABLE_DECLARE(bool fib6_rule_suppress(struct fib_rule *rule,
|
||||
struct fib_lookup_arg *arg));
|
||||
INDIRECT_CALLABLE_DECLARE(bool fib4_rule_suppress(struct fib_rule *rule,
|
||||
struct fib_lookup_arg *arg));
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user