Subject: Re: [PATCH] drivers/net/usb/asix: resync from vendor's copy

From: Mark Lord <[email-masked]>
Date: Wed, 07 Dec 2011 11:21:39 -0500

On 11-12-06 12:45 PM, Ben Hutchings wrote:
> On Tue, 2011-12-06 at 07:44 -0500, Mark Lord wrote:
>> On 11-12-05 10:18 AM, Ben Hutchings wrote:
>>> On Mon, 2011-12-05 at 09:41 -0500, Mark Lord wrote:
..
>>> If this hardware recognises specific protocols and works out the offsets
>>> itself, then you must claim NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM instead.
>>
>> Yeah, the hardware seems to understand quite a few protocol formats.
>> Okay, so I'll claim the protocol-specific flags in net->hw_features.
>>
>> But what do I use in net->features?
>> The exact same protocol flags,
>> or the generic NETIF_F_HW_CSUM | NETIF_F_RXCSUM ones?
> 
> You set the flags for features that are actually being implemented!
> 
> But do set NETIF_F_RXCSUM in both places.  The network stack doesn't
> know or care exactly what protocols you can do RX checksum validation
> for, so there is only one flag for this.  Only the TX checksum
> generation features have to be distinguished.
> 
>> The set_features() function also has to test for flags
>> to know what to do.  Should it test specific protocol flags,
>> or just the generic two ?
> 
> Think it through.
..

Heh.. my thinking side says to use the exact same protocol-specific flags
in both "hw_features" and "features", and therefore check for those flags
inside the "set_features()" function.

But that's not what earlier versions of this driver did,
and nor what the vendor's driver does.
Those versions all mix the protocol-specific and generic flags.

thus my confusion.