[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100615113926.30d0cd01@dhcp-lab-109.englab.brq.redhat.com>
Date: Tue, 15 Jun 2010 11:39:26 +0200
From: Stanislaw Gruszka <sgruszka@...hat.com>
To: Cong Wang <amwang@...hat.com>
Cc: Ben Hutchings <bhutchings@...arflare.com>, netdev@...r.kernel.org,
herbert.xu@...hat.com, nhorman@...hat.com, davem@...emloft.net
Subject: Re: [Patch 2/2] mlx4: add dynamic LRO disable support
On Tue, 15 Jun 2010 16:53:27 +0800
Cong Wang <amwang@...hat.com> wrote:
> > If so, it's better to stop device before modify LRO settings. I suggest
> > something like that in mlx4_ethtool_op_set_flags:
> >
> > if (!!(data& ETH_FLAG_LRO) != !!(dev->features& NETIF_F_LRO)) {
>
> What does this line mean? This is to ignore all other flags, right?
Yes, plus check if we are really changing current settings.
> > /* Need to toggle LRO */
> >
> > if (netdev_running(dev)) {
> > mutex_lock(&mdev->state_lock);
> > mlx4_en_stop_port(dev);
> > rc = mlx4_en_start_port(dev);
> > if (rc)
> > en_err(priv, "Failed to restart port\n");
> > }
> >
> > dev->features ^= NETIF_F_LRO;
> >
> > if (netdev_running(dev))
> > mutex_unlock(&mdev->state_lock);
> > }
> >
>
> I don't think mdev->state_lock is used to protect dev->feature.
> rtnl_lock is. I think switching to mlx4_ethtool_op_set_flags()
> from the default one has already solved this.
Ahh, you have right, may intention was use it to stop and start
port. Code rather should look like below:
if (netdev_running(dev)) {
mutex_lock(&mdev->state_lock);
mlx4_en_stop_port(dev);
}
dev->features ^= NETIF_F_LRO;
if (netdev_running(dev)) {
rc = mlx4_en_start_port(dev);
mutex_unlock(&mdev->state_lock);
if (rc)
en_err(priv, "Failed to restart port\n");
}
Stanislaw
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists