Re: [PATCH] sky2: don't do GRO on second port

Eric Dumazet
2010-09-02T12:09:14Z

Le jeudi 02 septembre 2010 à 11:02 +0000, Jarek Poplawski a écrit :
> On Thu, Sep 02, 2010 at 12:41:45PM +0200, Eric Dumazet wrote:

> > Two vlans might carry packets in different domains, with a clash of IP
> > space and TCP flows. Even with a probability of 0.000000001%, we cannot
> > ever merge two packets of different domains. Really !
>
> Hmm... But there is only a question of sky2 and this test in
> __napi_gro_receive().
>

Any driver can receive in one napi run :

1) A TCP tagged frame for vlan 345, delivered to vlan_gro_receive(),
queued in napi->gro_list.

2) An untagged frame, delived via napi_gro_receive()
Can meet previous frame in napi->gro_list. Should not merge.

So napi_gro_receive() must perform the same skb->dev check, sky2 or not.

> >
> > napi->dev is not used in GRO path, as mentioned earlier,
> > but in napi_get_frags(), while not needed.
> >
> > To make this very clear, I suggest following patch :
>
> But where this skb gets its skb->dev now?

Oh you are right, I thought drivers were setting this later, but its not
the case.