stmmac: pci: Make stmmac_pci_info structure constant
authorJan Kiszka <jan.kiszka@siemens.com>
Thu, 22 Jun 2017 06:17:57 +0000 (08:17 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 22 Jun 2017 17:39:56 +0000 (13:39 -0400)
By removing the PCI device reference from the structure and passing it
as parameters to the interested functions, we can make quark_pci_info
const.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c

index 22f910795be4fa8dd5bc160bca1762696d52c793..0efe42659a372c8b98dcba8082a5005017c0c559 100644 (file)
@@ -38,17 +38,17 @@ struct stmmac_pci_dmi_data {
 };
 
 struct stmmac_pci_info {
-       struct pci_dev *pdev;
-       int (*setup)(struct plat_stmmacenet_data *plat,
-                    struct stmmac_pci_info *info);
+       int (*setup)(struct pci_dev *pdev, struct plat_stmmacenet_data *plat,
+                    const struct stmmac_pci_info *info);
        struct stmmac_pci_dmi_data *dmi;
 };
 
-static int stmmac_pci_find_phy_addr(struct stmmac_pci_info *info)
+static int stmmac_pci_find_phy_addr(struct pci_dev *pdev,
+                                   const struct stmmac_pci_info *info)
 {
        const char *name = dmi_get_system_info(DMI_BOARD_NAME);
        const char *asset_tag = dmi_get_system_info(DMI_BOARD_ASSET_TAG);
-       unsigned int func = PCI_FUNC(info->pdev->devfn);
+       unsigned int func = PCI_FUNC(pdev->devfn);
        struct stmmac_pci_dmi_data *dmi;
 
        /*
@@ -114,10 +114,10 @@ static void stmmac_default_data(struct plat_stmmacenet_data *plat)
        /* TODO: AXI */
 }
 
-static int quark_default_data(struct plat_stmmacenet_data *plat,
-                             struct stmmac_pci_info *info)
+static int quark_default_data(struct pci_dev *pdev,
+                             struct plat_stmmacenet_data *plat,
+                             const struct stmmac_pci_info *info)
 {
-       struct pci_dev *pdev = info->pdev;
        int ret;
 
        /* Set common default data first */
@@ -127,7 +127,7 @@ static int quark_default_data(struct plat_stmmacenet_data *plat,
         * Refuse to load the driver and register net device if MAC controller
         * does not connect to any PHY interface.
         */
-       ret = stmmac_pci_find_phy_addr(info);
+       ret = stmmac_pci_find_phy_addr(pdev, info);
        if (ret < 0)
                return ret;
 
@@ -175,7 +175,7 @@ static struct stmmac_pci_dmi_data quark_pci_dmi_data[] = {
        {}
 };
 
-static struct stmmac_pci_info quark_pci_info = {
+static const struct stmmac_pci_info quark_pci_info = {
        .setup = quark_default_data,
        .dmi = quark_pci_dmi_data,
 };
@@ -237,9 +237,8 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
        pci_set_master(pdev);
 
        if (info) {
-               info->pdev = pdev;
                if (info->setup) {
-                       ret = info->setup(plat, info);
+                       ret = info->setup(pdev, plat, info);
                        if (ret)
                                return ret;
                }