Le lun. 26 oct. 2026 à 10:16, Paul Moses <[email protected]> a écrit : > > Preemptible queues require software padding so hardware includes the > padding bytes in the mCRC. Padding currently runs after TX timestamp > reservation takes an extra skb reference. If padding needs to expand > the skb, pskb_expand_head() rejects the shared skb. > > Commit c7d8bc3dd511 ("net: skbuff: don't BUG() on bad arguments to > pskb_expand_head()") replaced the BUG_ON() with -EINVAL, exposing the > padding error path. skb_padto() drops one reference on failure, and > out_drop drops another. This can free the skb while the pending TX > timestamp still holds its pointer. > > Move padding before TX timestamp reservation and use __skb_put_padto() > with free_on_error set to false so out_drop handles the skb release. > Preserve the VLAN flags in first->tx_flags when adding timestamp flags. > > Fixes: 17643482e9ff ("igc: add preemptible queue support in taprio") > Signed-off-by: Paul Moses <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
