The check as now insists that the actual driver supports GSO_ROBUST,
because we have marked the skb dodgy.
The specific bit which does this check is in net_gso_ok()
Now, lets's see how many Ethernet drivers set GSO_ROBUST.
find drivers/net/ethernet -type f -name "*.[c,h]" -exec grep -H
GSO_ROBUST {} \;
That returns nothing in 4.x
IMHO - af_packet allocates the skb, does all checks (and extra may be
added) on the gso, why is this set dodgy in the first place?
A.
On 11/10/17 17:26, Willem de Bruijn wrote:
On Wed, Oct 11, 2017 at 11:54 AM, Anton Ivanov
<anton.iva...@cambridgegreys.com> wrote:
It is that patch.
I rolled it back and immediately got it to work correctly on a Broadcom
Tigon. I can test on all other scenarios, I have tried, I suspect it will
come back alive on all of them.
I am going to try to trace it through and see exactly where it drops a skb
which the card has no issues in accepting.
It might be in the initialization of gso_type and csum. The virtio_net_hdr
can encode various combinations of flags that are not allowed by the
validation logic.