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

From: Mark Lord
Date: Tue Dec 06 2011 - 07:44:28 EST


On 11-12-05 10:18 AM, Ben Hutchings wrote:
> On Mon, 2011-12-05 at 09:41 -0500, Mark Lord wrote:
> [...]
>> static int ax88772b_bind(struct usbnet *dev, struct usb_interface *intf)
>> {
>> ...
>> /* register support for hardware checksums */
>> dev->net->hw_features |= NETIF_F_HW_CSUM | NETIF_F_RXCSUM;
>>
>> /* enable hardware checksums */
>> dev->net->features |= NETIF_F_HW_CSUM | NETIF_F_RXCSUM;
>> ax88772b_set_features(dev->net, dev->net->features);
>> ...
>> }
>> -------------------------------snip-----------------------------------
>>
>> Does this look correct -- any improvements/fixes to suggest?
> [...]
>
> NETIF_F_HW_CSUM means the hardware implements generic IP-style
> checksumming: the stack specifies the offset at which to start
> checksumming and the offset at which to store the checksum, and the
> hardware does not attempt to parse the headers.
>
> 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?

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 ?

Thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/