From: Katarzyna Wieczerzycka <[email protected]> By default skb->mac_header is not set, so reset prevents access to an invalid pointer.
Call skb_reset_mac_header() before accessing the mac header from skb. Signed-off-by: Katarzyna Wieczerzycka <[email protected]> Signed-off-by: Aleksandr Loktionov <[email protected]> --- drivers/net/ethernet/intel/ice/ice_txrx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c index a2cd4cf..374b17f 100644 --- a/drivers/net/ethernet/intel/ice/ice_txrx.c +++ b/drivers/net/ethernet/intel/ice/ice_txrx.c @@ -2211,6 +2211,8 @@ ice_xmit_frame_ring(struct sk_buff *skb, struct ice_tx_ring *tx_ring) goto out_drop; /* allow CONTROL frames egress from main VSI if FW LLDP disabled */ + if (likely(!skb_mac_header_was_set(skb))) + skb_reset_mac_header(skb); eth = (struct ethhdr *)skb_mac_header(skb); if ((ice_is_switchdev_running(vsi->back) || -- 2.52.0
