Re: [PATCH net v2] net: Reset MAC header for direct packet transmission
From: Julian Wiedmann <hidden>
Date: 2021-03-29 12:43:36
On 29.03.21 14:13, Eric Dumazet wrote:
On Mon, Mar 29, 2021 at 12:30 PM Kurt Kanzenbach [off-list ref] wrote:quoted
On Mon Mar 29 2021, Eric Dumazet wrote:quoted
Note that last year, I addressed the issue differently in commit 96cc4b69581db68efc9749ef32e9cf8e0160c509 ("macvlan: do not assume mac_header is set in macvlan_broadcast()") (amended with commit 1712b2fff8c682d145c7889d2290696647d82dab "macvlan: use skb_reset_mac_header() in macvlan_queue_xmit()") My reasoning was that in TX path, when ndo_start_xmit() is called, MAC header is essentially skb->data, so I was hoping to _remove_ skb_reset_mac_header(skb) eventually from the fast path (aka __dev_queue_xmit), because most drivers do not care about MAC header, they just use skb->data. I understand it is more difficult to review drivers instead of just adding more code in __dev_direct_xmit() In hsr case, I do not really see why the existing check can not be simply reworked ?It can be reworked, no problem. I just thought it might be better to add it to the generic code just in case there are more drivers suffering from the issue.Note that I have a similar issue pending in ipvlan. Still, I think I prefer the non easy way to not add more stuff in fast path.
Can we apply this fix (and propagate it to stable), and then remove the skb_reset_mac_header() from _both_ xmit paths through net-next?