nfp: move mutex init out of net code
authorJakub Kicinski <jakub.kicinski@netronome.com>
Fri, 26 May 2017 08:03:31 +0000 (01:03 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 May 2017 15:01:48 +0000 (11:01 -0400)
Move mutex init to main file close to structure allocation.
This will allow mutex to be taken before net code runs (e.g.
from devlink callbacks).  While at it remember to destroy
the mutex.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/netronome/nfp/nfp_main.c
drivers/net/ethernet/netronome/nfp/nfp_net_main.c

index bb586ce1ea0686e373493b9b6009755f1f7e15f8..3a131559153abebcd222873dc8d36ee05c3b2b78 100644 (file)
@@ -41,6 +41,7 @@
 
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/mutex.h>
 #include <linux/pci.h>
 #include <linux/firmware.h>
 #include <linux/vermagic.h>
@@ -342,6 +343,7 @@ static int nfp_pci_probe(struct pci_dev *pdev,
        }
        INIT_LIST_HEAD(&pf->vnics);
        INIT_LIST_HEAD(&pf->ports);
+       mutex_init(&pf->lock);
        pci_set_drvdata(pdev, pf);
        pf->pdev = pdev;
 
@@ -380,6 +382,7 @@ err_cpp_free:
        nfp_cpp_free(pf->cpp);
 err_disable_msix:
        pci_set_drvdata(pdev, NULL);
+       mutex_destroy(&pf->lock);
        kfree(pf);
 err_rel_regions:
        pci_release_regions(pdev);
@@ -404,6 +407,7 @@ static void nfp_pci_remove(struct pci_dev *pdev)
        nfp_cpp_free(pf->cpp);
 
        kfree(pf->eth_tbl);
+       mutex_destroy(&pf->lock);
        kfree(pf);
        pci_release_regions(pdev);
        pci_disable_device(pdev);
index dd1118c7e1a470dfcc8c70e896265c526b4d522d..5139c13b6e539a88768f71bab28fd77cc54f8ee9 100644 (file)
@@ -641,7 +641,6 @@ int nfp_net_pci_probe(struct nfp_pf *pf)
        int err;
 
        INIT_WORK(&pf->port_refresh_work, nfp_net_refresh_vnics);
-       mutex_init(&pf->lock);
 
        /* Verify that the board has completed initialization */
        if (!nfp_is_ready(pf->cpp)) {