Re: [PATCH net] qmi_wwan: Clone the skb when in pass-through mode
From: Jakub Kicinski <kuba@kernel.org>
Date: 2021-06-15 19:26:09
On Tue, 15 Jun 2021 15:39:14 +0200 Bjørn Mork wrote:
quoted
quoted
I think this would be a really nice solution. The same (at least FLAG_MULTI_PACKET + usbnet_skb_return) could be applied to pass through as well, giving us consistent handling of aggregated packets. While we might not save a huge number of lines, I believe the resulting code will be easier to understand.Apologies for the noise. When I check the code again, I see that as long as FLAG_MULTI_PACKET is set, then we end up with usbnet freeing the skb (we will always jump to done in rx_process()). So for the pass-through case, I believe your initial suggestion of having rx_fixup return 1 is the way to go.Yes, if we are to use FLAG_MULTI_PACKET then we must call usbnet_skb_return() for all the non-muxed cases. There is no clean way to enable FLAG_MULTI_PACKET on-demand.
Tricky piece of code. Perhaps we could add another return code to the rx_fixup call? Seems that we expect 0 or 1 today, maybe we can make 2 mean "data was copied out", and use that for the qmimux case?
I am fine with either solution. Whatever Jakub wants :-)
Well, turns out I was looking at the wrong netif_rx() so take what I say with a grain of salt ;)