Le lun. 26 oct. 2026 à 10:16, Paul Moses <[email protected]> a écrit : > > igc_request_tx_tstamp() takes an extra skb reference before transmit > preparation. For GSO packets, igc_tso() calls skb_cow_head(), which can > reach pskb_expand_head() with a shared skb when the header is cloned. > Commit c7d8bc3dd511 ("net: skbuff: don't BUG() on bad arguments to > pskb_expand_head()") replaced the BUG_ON() with -EINVAL, causing TSO > preparation to fail and the packet to be dropped. > > For non-GSO packets with CHECKSUM_PARTIAL, igc_tx_csum() falls back to > skb_checksum_help() for unsupported checksum offsets. This can also > reach pskb_expand_head() through skb_ensure_writable(). igc_tx_csum() > ignores the error, allowing transmission to continue without completing > the checksum. > > Move TSO and checksum preparation before TX timestamp reservation so > the extra skb reference cannot interfere with either operation. > > Fixes: 2c344ae24501 ("igc: Add support for TX timestamping") > Fixes: f38b782dccab ("igc: Add support for TSO") > Signed-off-by: Paul Moses <[email protected]> > ---
Reviewed-by: Eric Dumazet <[email protected]>
