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.


Reply via email to