Subject: Re: [v3 Patch 2/2] mlx4: add dynamic LRO disable support

From: Cong Wang <[email-masked]>
Date: Mon, 21 Jun 2010 10:23:00 +0800

On 06/18/10 19:09, Stanislaw Gruszka wrote:
> On Fri, Jun 18, 2010 at 06:55:38AM -0400, Amerigo Wang wrote:
>> +static int mlx4_ethtool_op_set_flags(struct net_device *dev, u32 data)
>> +{
>> +	struct mlx4_en_priv *priv = netdev_priv(dev);
>> +	struct mlx4_en_dev *mdev = priv->mdev;
>> +	int rc = 0;
>> +	int changed = 0;
>> +
>> +	if (data&  (ETH_FLAG_NTUPLE | ETH_FLAG_RXHASH))
>> +		return -EOPNOTSUPP;
>> +
>> +	if (data&  ETH_FLAG_LRO) {
>> +		if (!(dev->features&  NETIF_F_LRO))
>> +			changed = 1;
>> +	} else if (dev->features&  NETIF_F_LRO) {
>> +		changed = 1;
>> +		mdev->profile.num_lro = 0;
>
> Everything fine except that, what for you zero num_lro value?
>
> If we set it to zero it will stay zero and we will not create
> proper number of lro descriptors in mlx4_en_create_rx_ring()
> (called from mlx4_en_set_ringparam() ->   mlx4_en_alloc_resources())
> when someone enable LRO again on.
>

Huh? Isn't ->num_lro which controls LRO of mlx4 driver?