[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100603153811.7b14a1a8@leela>
Date: Thu, 3 Jun 2010 15:38:11 +0200
From: Michal Schmidt <mschmidt@...hat.com>
To: netdev@...r.kernel.org
Cc: Amerigo Wang <amwang@...hat.com>, herbert.xu@...hat.com,
nhorman@...hat.com, sgruszka@...hat.com, davem@...emloft.net,
Ramkrishna Vepa <Ramkrishna.Vepa@...r.com>
Subject: Re: [Patch 1/2] s2io: add dynamic LRO disable support
[adding Ram Vepa to CC]
On Wed, 2 Jun 2010 23:38:59 -0400 Amerigo Wang wrote:
>
> This patch adds dynamic LRO diable support for s2io net driver.
>
> I don't have s2io card, so only did compiling test. Anyone who wants
> to test this is more than welcome.
>
> This is based on Neil's initial work.
>
> Signed-off-by: WANG Cong <amwang@...hat.com>
> Signed-off-by: Neil Horman <nhorman@...hat.com>
> Acked-by: Neil Horman <nhorman@...hat.com>
> Reviewed-by: Stanislaw Gruszka <sgruszka@...hat.com>
>
>
> ---
> diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
> index 668327c..9db5df7 100644
> --- a/drivers/net/s2io.c
> +++ b/drivers/net/s2io.c
> @@ -6684,6 +6684,35 @@ static int s2io_ethtool_op_set_tso(struct
> net_device *dev, u32 data)
> return 0;
> }
> +static int s2io_ethtool_set_flags(struct net_device *dev, u32 data)
> +{
> + struct s2io_nic *sp = netdev_priv(dev);
> + int rc = 0;
> + int changed = 0;
> +
> + if (data & ETH_FLAG_LRO) {
> + if (lro_enable) {
> + if (!(dev->features & NETIF_F_LRO)) {
> + dev->features |= NETIF_F_LRO;
> + changed = 1;
> + }
> + } else
> + rc = -EINVAL;
> + } else if (dev->features & NETIF_F_LRO) {
> + dev->features &= ~NETIF_F_LRO;
> + changed = 1;
> + }
> +
> + if (changed && netif_running(dev)) {
> + s2io_stop_all_tx_queue(sp);
> + s2io_card_down(sp);
> + sp->lro = dev->features & NETIF_F_LRO;
> + rc = s2io_card_up(sp);
> + s2io_start_all_tx_queue(sp);
> + }
> +
> + return rc;
> +}
>
> static const struct ethtool_ops netdev_ethtool_ops = {
> .get_settings = s2io_ethtool_gset,
> @@ -6701,6 +6730,8 @@ static const struct ethtool_ops
> netdev_ethtool_ops = { .get_rx_csum = s2io_ethtool_get_rx_csum,
> .set_rx_csum = s2io_ethtool_set_rx_csum,
> .set_tx_csum = s2io_ethtool_op_set_tx_csum,
> + .set_flags = s2io_ethtool_set_flags,
> + .get_flags = ethtool_op_get_flags,
> .set_sg = ethtool_op_set_sg,
> .get_tso = s2io_ethtool_op_get_tso,
> .set_tso = s2io_ethtool_op_set_tso,
> --
> 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
--
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