diff options
author | Edward Cree <ecree@solarflare.com> | 2018-07-02 16:13:56 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-07-04 14:06:20 +0900 |
commit | 88eb1944e18c1ba61da538ae9d1732832eb79b9d (patch) | |
tree | cd490d146232fdff656e998fcc37576b25f7361c /net/ipv4/ip_input.c | |
parent | 4ce0017a373afaaa9ef17614d8fa4f6fde261d18 (diff) | |
download | linux-88eb1944e18c1ba61da538ae9d1732832eb79b9d.tar.gz linux-88eb1944e18c1ba61da538ae9d1732832eb79b9d.tar.bz2 linux-88eb1944e18c1ba61da538ae9d1732832eb79b9d.zip |
net: core: propagate SKB lists through packet_type lookup
__netif_receive_skb_core() does a depressingly large amount of per-packet
work that can't easily be listified, because the another_round looping
makes it nontrivial to slice up into smaller functions.
Fortunately, most of that work disappears in the fast path:
* Hardware devices generally don't have an rx_handler
* Unless you're tcpdumping or something, there is usually only one ptype
* VLAN processing comes before the protocol ptype lookup, so doesn't force
a pt_prev deliver
so normally, __netif_receive_skb_core() will run straight through and pass
back the one ptype found in ptype_base[hash of skb->protocol].
Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/ip_input.c')
0 files changed, 0 insertions, 0 deletions