Thread (11 messages) 11 messages, 2 authors, 2015-02-23

[net-next PATCH 7/9] be2net: refactor adapter resource initialzation sequence into be_resume()

flat view
STALE4250d SUPERSEDED

From: Sathya Perla <hidden>
Date: 2015-02-23 09:17:17
Subsystem: emulex 10gbps nic be2, be3-r, lancer, skyhawk-r driver (be2net), networking drivers, the rest · Maintainers: Ajit Khaparde, Sriharsha Basavapatna, Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds

Revision v1 of 12 in this series.

Revisions (12)
  1. v1
  2. v1
  3. v1
  4. v1
  5. v1
  6. v2 [diff vs current]
  7. v1
  8. v1
  9. v1
  10. v1
  11. v1 current
  12. v1
From: Kalesh AP <redacted>

Most of the adapter initialisation sequences performed in be_resume(),
be_eeh_resume() and be_err_recover() are same. Renamed be_resume() to
be_pci_resume() and moved the common code to a new routine be_resume() to
avoid code duplication.

Signed-off-by: Kalesh AP <redacted>
Signed-off-by: Sathya Perla <redacted>
---
 drivers/net/ethernet/emulex/benet/be_main.c | 56 +++++++++++------------------
 1 file changed, 21 insertions(+), 35 deletions(-)
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 4a29ff1..80a0aab 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -4941,28 +4941,39 @@ static int be_func_init(struct be_adapter *adapter)
 	return 0;
 }
 
-static int be_err_recover(struct be_adapter *adapter)
+static int be_resume(struct be_adapter *adapter)
 {
 	struct net_device *netdev = adapter->netdev;
-	struct device *dev = &adapter->pdev->dev;
 	int status;
 
 	status = be_func_init(adapter);
 	if (status)
-		goto err;
+		return status;
 
 	status = be_setup(adapter);
 	if (status)
-		goto err;
+		return status;
 
 	if (netif_running(netdev)) {
 		status = be_open(netdev);
 		if (status)
-			goto err;
+			return status;
 	}
 
 	netif_device_attach(netdev);
 
+	return 0;
+}
+
+static int be_err_recover(struct be_adapter *adapter)
+{
+	struct device *dev = &adapter->pdev->dev;
+	int status;
+
+	status = be_resume(adapter);
+	if (status)
+		goto err;
+
 	dev_info(dev, "Adapter recovery successful\n");
 	return 0;
 err:
@@ -5412,13 +5423,10 @@ static int be_suspend(struct pci_dev *pdev, pm_message_t state)
 	return 0;
 }
 
-static int be_resume(struct pci_dev *pdev)
+static int be_pci_resume(struct pci_dev *pdev)
 {
-	int status = 0;
 	struct be_adapter *adapter = pci_get_drvdata(pdev);
-	struct net_device *netdev =  adapter->netdev;
-
-	netif_device_detach(netdev);
+	int status = 0;
 
 	status = pci_enable_device(pdev);
 	if (status)
@@ -5427,19 +5435,10 @@ static int be_resume(struct pci_dev *pdev)
 	pci_set_power_state(pdev, PCI_D0);
 	pci_restore_state(pdev);
 
-	status = be_func_init(adapter);
+	status = be_resume(adapter);
 	if (status)
 		return status;
 
-	be_setup(adapter);
-	if (netif_running(netdev)) {
-		rtnl_lock();
-		be_open(netdev);
-		rtnl_unlock();
-	}
-
-	netif_device_attach(netdev);
-
 	be_schedule_err_detection(adapter);
 
 	if (adapter->wol_en)
@@ -5539,28 +5538,15 @@ static void be_eeh_resume(struct pci_dev *pdev)
 {
 	int status = 0;
 	struct be_adapter *adapter = pci_get_drvdata(pdev);
-	struct net_device *netdev =  adapter->netdev;
 
 	dev_info(&adapter->pdev->dev, "EEH resume\n");
 
 	pci_save_state(pdev);
 
-	status = be_func_init(adapter);
+	status = be_resume(adapter);
 	if (status)
 		goto err;
 
-	status = be_setup(adapter);
-	if (status)
-		goto err;
-
-	if (netif_running(netdev)) {
-		status = be_open(netdev);
-		if (status)
-			goto err;
-	}
-
-	netif_device_attach(netdev);
-
 	be_schedule_err_detection(adapter);
 	return;
 err:
@@ -5579,7 +5565,7 @@ static struct pci_driver be_driver = {
 	.probe = be_probe,
 	.remove = be_remove,
 	.suspend = be_suspend,
-	.resume = be_resume,
+	.resume = be_pci_resume,
 	.shutdown = be_shutdown,
 	.err_handler = &be_eeh_handlers
 };
-- 
2.2.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help