]> git.baikalelectronics.ru Git - kernel.git/commit
net: core: propagate SKB lists through packet_type lookup
authorEdward Cree <ecree@solarflare.com>
Mon, 2 Jul 2018 15:13:56 +0000 (16:13 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Jul 2018 05:06:20 +0000 (14:06 +0900)
commite11c0955df6cbf7f7e5bc9e1c6773a0e3da24890
treecd490d146232fdff656e998fcc37576b25f7361c
parent37b5e09724efdd24be0d74460b62272f35d7e46e
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>
net/core/dev.c