Thread (2 messages) flat view 2 messages, 1 author, 2018-08-24

RE: [PATCH net 1/1] qlge: Fix netdev features configuration.

From: Chopra, Manish <hidden>
Date: 2018-08-24 01:32:24

quoted hunk ↗ jump to hunk
-----Original Message-----
From: Manish Chopra <redacted>
Sent: Friday, August 24, 2018 2:02 AM
To: davem@davemloft.net
Cc: netdev@vger.kernel.org; Dept-GE Linux NIC Dev <Dept-
GELinuxNICDev@cavium.com>; bpoirier@suse.com
Subject: [PATCH net 1/1] qlge: Fix netdev features configuration.

qlge_fix_features() is not supposed to modify hardware or driver state,
rather it is supposed to only fix requested fetures bits. Currently
qlge_fix_features() also goes for interface down and up unnecessarily if there
is not even any change in features set.

This patch changes/fixes following -

1) Move reload of interface or device re-config from
   qlge_fix_features() to qlge_set_features().
2) Reload of interface in qlge_set_features() only if
   relevant feature bit (NETIF_F_HW_VLAN_CTAG_RX) is changed.
3) Get rid of qlge_fix_features() since driver is not really
   required to fix any features bit.

Signed-off-by: Manish <redacted>
Reviewed-by: Benjamin Poirier <redacted>
---
 drivers/net/ethernet/qlogic/qlge/qlge_main.c | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c
b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
index 353f1c1..059ba94 100644
--- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c
+++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
@@ -2384,26 +2384,20 @@ static int qlge_update_hw_vlan_features(struct
net_device *ndev,
 	return status;
 }

-static netdev_features_t qlge_fix_features(struct net_device *ndev,
-	netdev_features_t features)
-{
-	int err;
-
-	/* Update the behavior of vlan accel in the adapter */
-	err = qlge_update_hw_vlan_features(ndev, features);
-	if (err)
-		return err;
-
-	return features;
-}
-
 static int qlge_set_features(struct net_device *ndev,
 	netdev_features_t features)
 {
 	netdev_features_t changed = ndev->features ^ features;
+	int err;
+
+	if (changed & NETIF_F_HW_VLAN_CTAG_RX) {
+		/* Update the behavior of vlan accel in the adapter */
+		err = qlge_update_hw_vlan_features(ndev, features);
+		if (err)
+			return err;

-	if (changed & NETIF_F_HW_VLAN_CTAG_RX)
 		qlge_vlan_mode(ndev, features);
+	}

 	return 0;
 }
@@ -4719,7 +4713,6 @@ static int ql_init_device(struct pci_dev *pdev,
struct net_device *ndev,
 	.ndo_set_mac_address	= qlge_set_mac_address,
 	.ndo_validate_addr	= eth_validate_addr,
 	.ndo_tx_timeout		= qlge_tx_timeout,
-	.ndo_fix_features	= qlge_fix_features,
 	.ndo_set_features	= qlge_set_features,
 	.ndo_vlan_rx_add_vid	= qlge_vlan_rx_add_vid,
 	.ndo_vlan_rx_kill_vid	= qlge_vlan_rx_kill_vid,
--
1.8.3.1
Hello David,  Please ignore this patch and consider the previous same patch. By mistake it was submitted twice.

Thanks !!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help