Hi,
On Tue, Jun 15, 2021 at 9:26 PM Jakub Kicinski [off-list ref] wrote:
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 took another look at the qmi_wwan and usbnet code, and I think we
can solve the problem at hand with the current infrastructure. I
believe all we have to do, is to change qmimux_rx_fixup() to return 0
and not 1. When the rx_fixup() callback returns 0, rx_progress() will
jump to "done" and queue the skb for clean-up. This is the same
behavior as if FLAG_MULTI_PACKET was set. I will test and prepare a
patch changing the return value, assuming it works well. Looking at
the loop in qmimux_rx_fixup I also see room for some clean-up, I will
try to merge everything into one.
Kristian