Thread (36 messages) 36 messages, 5 authors, 2011-12-07

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

From: Ben Hutchings <hidden>
Date: 2011-11-09 17:32:05
Also in: lkml

On Wed, 2011-11-09 at 12:20 -0500, Mark Lord wrote:
On 11-11-09 11:57 AM, Mark Lord wrote:
quoted
On 11-11-09 11:47 AM, Mark Lord wrote:
..
quoted
Note:  I'm looking at smsc95xx.c and smsc75xx.c for examples,
and they both have the same problem I'll have here:

How to update the csum settings atomically.
A spinlock is no good, because config register access is over USB.
Nevermind.. a slight change in the logic and all is well again.
..

Or even simpler (below).  I don't think this method requires any
extra locking, but I'm still open to persuasion.  :)
Looks reasonable, but...
static int ax88772b_set_features(struct net_device *netdev, u32 features)
{
        struct usbnet *dev = netdev_priv(netdev);
        struct ax88772b_data *priv = (struct ax88772b_data *)dev->driver_priv;
        u16 tx_csum = 0, rx_csum = 0;

        priv->features = features & (NETIF_F_HW_CSUM | NETIF_F_RXCSUM);
...why do you need priv->features at all?

Ben.
        if (features & NETIF_F_HW_CSUM)
                tx_csum = AX_TXCOE_DEF_CSUM;
        if (features & NETIF_F_RXCSUM)
                rx_csum = AX_RXCOE_DEF_CSUM;
        ax8817x_write_cmd(dev, AX_CMD_WRITE_RXCOE_CTL, rx_csum, 0, 0, NULL);
        ax8817x_write_cmd(dev, AX_CMD_WRITE_TXCOE_CTL, tx_csum, 0, 0, NULL);
        return 0;
}
-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help