net: use indirect call wrappers at GRO network layer
This avoids an indirect calls for L3 GRO receive path, both for ipv4 and ipv6, if the latter is not compiled as a module. Note that when IPv6 is compiled as builtin, it will be checked first, so we have a single additional compare for the more common path. v1 -> v2: - adapted to INDIRECT_CALL_ changes Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
283c16a2df
commit
aaa5d90b39
@@ -164,8 +164,8 @@ static int ipv6_exthdrs_len(struct ipv6hdr *iph,
|
||||
return len;
|
||||
}
|
||||
|
||||
static struct sk_buff *ipv6_gro_receive(struct list_head *head,
|
||||
struct sk_buff *skb)
|
||||
INDIRECT_CALLABLE_SCOPE struct sk_buff *ipv6_gro_receive(struct list_head *head,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
const struct net_offload *ops;
|
||||
struct sk_buff *pp = NULL;
|
||||
@@ -301,7 +301,7 @@ static struct sk_buff *ip4ip6_gro_receive(struct list_head *head,
|
||||
return inet_gro_receive(head, skb);
|
||||
}
|
||||
|
||||
static int ipv6_gro_complete(struct sk_buff *skb, int nhoff)
|
||||
INDIRECT_CALLABLE_SCOPE int ipv6_gro_complete(struct sk_buff *skb, int nhoff)
|
||||
{
|
||||
const struct net_offload *ops;
|
||||
struct ipv6hdr *iph = (struct ipv6hdr *)(skb->data + nhoff);
|
||||
|
||||
Reference in New Issue
Block a user