]> git.baikalelectronics.ru Git - kernel.git/commit
__netif_receive_skb_core: pass skb by reference
authorBoris Sukholitko <boris.sukholitko@broadcom.com>
Tue, 19 May 2020 07:32:37 +0000 (10:32 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 May 2020 22:38:00 +0000 (15:38 -0700)
commit3c383ff217628e67f54758e761bce57aa8260b47
treea72795d0d8594c6b85681104a4240b9e5fc9c1a0
parentb65d1f76575e0ef8353e84ff5e47d60c54a4ed7e
__netif_receive_skb_core: pass skb by reference

__netif_receive_skb_core may change the skb pointer passed into it (e.g.
in rx_handler). The original skb may be freed as a result of this
operation.

The callers of __netif_receive_skb_core may further process original skb
by using pt_prev pointer returned by __netif_receive_skb_core thus
leading to unpleasant effects.

The solution is to pass skb by reference into __netif_receive_skb_core.

v2: Added Fixes tag and comment regarding ppt_prev and skb invariant.

Fixes: e11c0955df6c ("net: core: propagate SKB lists through packet_type lookup")
Signed-off-by: Boris Sukholitko <boris.sukholitko@broadcom.com>
Acked-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c