Re: [PATCH net 1/3] net: hsr: privatize interlink-bound skbs before address mutation
Ali Ahmet Memis <[email protected]> Mon, 3 Aug 2026 21:05:41 +0000
| Newsgroups | org.kernel.vger.linux-kselftest,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 3 Aug 2026 12:43:05 -0700 Jakub Kicinski wrote: > How are you producing this review? > I've never seen this sort of blurb human-written. I write them myself. English is not my first language, so I draft a comment and then keep cutting and rearranging it until it says exactly what I mean. What comes out is denser than how people normally write on a list, and I can see how that reads as machine output. The content is what I went through in hsr_forward.c. hsr_deliver_master() calls hsr_addr_subst_source(), which writes into the header, so the copy has to happen before that call rather than after it. It only matters when the master can be looking at the same skb as another consumer, and in hsr_forward_do() that is decided by these two: if (port->type == HSR_PT_MASTER && !frame->is_local_dest) continue; if (port->type != HSR_PT_MASTER && frame->is_local_exclusive) continue; so a ring frame reaches the master and a slave port together only when is_local_dest is set and is_local_exclusive is not. That is the case I meant by the skb aliasing a live consumer. The accounting remark was about the create_tagged_frame() failure just below, which does frame->port_rcv->dev->stats.rx_dropped++, and the new failure path does the same. If the phrasing is what bothers you I can write these plainly from now on. I only tag patches I have read through myself.