Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit deaec0f6 authored by Stanislaw Gruszka's avatar Stanislaw Gruszka Committed by David S. Miller
Browse files

qlcnic: fail when try to setup unsupported features

parent ef2519b1
Loading
Loading
Loading
Loading
+10 −3
Original line number Original line Diff line number Diff line
@@ -983,12 +983,19 @@ static int qlcnic_set_flags(struct net_device *netdev, u32 data)
	struct qlcnic_adapter *adapter = netdev_priv(netdev);
	struct qlcnic_adapter *adapter = netdev_priv(netdev);
	int hw_lro;
	int hw_lro;


	if (data & ~ETH_FLAG_LRO)
		return -EOPNOTSUPP;

	if (!(adapter->capabilities & QLCNIC_FW_CAPABILITY_HW_LRO))
	if (!(adapter->capabilities & QLCNIC_FW_CAPABILITY_HW_LRO))
		return -EINVAL;
		return -EINVAL;


	ethtool_op_set_flags(netdev, data);
	if (data & ETH_FLAG_LRO) {

		hw_lro = QLCNIC_LRO_ENABLED;
	hw_lro = (data & ETH_FLAG_LRO) ? QLCNIC_LRO_ENABLED : 0;
		netdev->features |= NETIF_F_LRO;
	} else {
		hw_lro = 0;
		netdev->features &= ~NETIF_F_LRO;
	}


	if (qlcnic_config_hw_lro(adapter, hw_lro))
	if (qlcnic_config_hw_lro(adapter, hw_lro))
		return -EIO;
		return -EIO;