Loading net/core/dev.c +12 −0 Original line number Diff line number Diff line Loading @@ -3689,6 +3689,9 @@ static bool skb_pfmemalloc_protocol(struct sk_buff *skb) } } int (*gsb_nw_stack_recv)(struct sk_buff *skb) __rcu __read_mostly; EXPORT_SYMBOL(gsb_nw_stack_recv); int (*athrs_fast_nat_recv)(struct sk_buff *skb, struct packet_type *pt_temp) __rcu __read_mostly; EXPORT_SYMBOL(athrs_fast_nat_recv); Loading @@ -3705,6 +3708,7 @@ static int __netif_receive_skb_core(struct sk_buff *skb, bool pfmemalloc) bool deliver_exact = false; int ret = NET_RX_DROP; __be16 type; int (*gsb_ns_recv)(struct sk_buff *skb); int (*fast_recv)(struct sk_buff *skb, struct packet_type *pt_temp); int (*embms_recv)(struct sk_buff *skb); Loading Loading @@ -3752,6 +3756,14 @@ another_round: } skip_taps: gsb_ns_recv = rcu_dereference(gsb_nw_stack_recv); if (gsb_ns_recv) { if (gsb_ns_recv(skb)) { ret = NET_RX_SUCCESS; goto out; } } fast_recv = rcu_dereference(athrs_fast_nat_recv); if (fast_recv) { if (fast_recv(skb, pt_prev)) { Loading Loading
net/core/dev.c +12 −0 Original line number Diff line number Diff line Loading @@ -3689,6 +3689,9 @@ static bool skb_pfmemalloc_protocol(struct sk_buff *skb) } } int (*gsb_nw_stack_recv)(struct sk_buff *skb) __rcu __read_mostly; EXPORT_SYMBOL(gsb_nw_stack_recv); int (*athrs_fast_nat_recv)(struct sk_buff *skb, struct packet_type *pt_temp) __rcu __read_mostly; EXPORT_SYMBOL(athrs_fast_nat_recv); Loading @@ -3705,6 +3708,7 @@ static int __netif_receive_skb_core(struct sk_buff *skb, bool pfmemalloc) bool deliver_exact = false; int ret = NET_RX_DROP; __be16 type; int (*gsb_ns_recv)(struct sk_buff *skb); int (*fast_recv)(struct sk_buff *skb, struct packet_type *pt_temp); int (*embms_recv)(struct sk_buff *skb); Loading Loading @@ -3752,6 +3756,14 @@ another_round: } skip_taps: gsb_ns_recv = rcu_dereference(gsb_nw_stack_recv); if (gsb_ns_recv) { if (gsb_ns_recv(skb)) { ret = NET_RX_SUCCESS; goto out; } } fast_recv = rcu_dereference(athrs_fast_nat_recv); if (fast_recv) { if (fast_recv(skb, pt_prev)) { Loading