net: dsa: microchip: move port memory allocation to ksz_common
authorArun Ramadoss <arun.ramadoss@microchip.com>
Tue, 17 May 2022 09:43:29 +0000 (15:13 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 18 May 2022 11:50:59 +0000 (12:50 +0100)
ksz8795 and ksz9477 init function initializes the memory to dev->ports,
mib counters and assigns the ds real number of ports. Since both the
routines are same, moved the allocation of port memory to
ksz_switch_register after init.

Signed-off-by: Arun Ramadoss <arun.ramadoss@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/microchip/ksz8795.c
drivers/net/dsa/microchip/ksz9477.c
drivers/net/dsa/microchip/ksz_common.c

index 764e16b..3490b60 100644 (file)
@@ -1494,7 +1494,6 @@ static int ksz8_switch_detect(struct ksz_device *dev)
 static int ksz8_switch_init(struct ksz_device *dev)
 {
        struct ksz8 *ksz8 = dev->priv;
-       int i;
 
        dev->ds->ops = &ksz8_switch_ops;
 
@@ -1513,25 +1512,6 @@ static int ksz8_switch_init(struct ksz_device *dev)
                ksz8->shifts = ksz8795_shifts;
        }
 
-       dev->ports = devm_kzalloc(dev->dev,
-                                 dev->info->port_cnt * sizeof(struct ksz_port),
-                                 GFP_KERNEL);
-       if (!dev->ports)
-               return -ENOMEM;
-       for (i = 0; i < dev->info->port_cnt; i++) {
-               mutex_init(&dev->ports[i].mib.cnt_mutex);
-               dev->ports[i].mib.counters =
-                       devm_kzalloc(dev->dev,
-                                    sizeof(u64) *
-                                    (dev->info->mib_cnt + 1),
-                                    GFP_KERNEL);
-               if (!dev->ports[i].mib.counters)
-                       return -ENOMEM;
-       }
-
-       /* set the real number of ports */
-       dev->ds->num_ports = dev->info->port_cnt;
-
        /* We rely on software untagging on the CPU port, so that we
         * can support both tagged and untagged VLANs
         */
index f7d4a34..d4729f0 100644 (file)
@@ -1432,32 +1432,10 @@ static int ksz9477_switch_detect(struct ksz_device *dev)
 
 static int ksz9477_switch_init(struct ksz_device *dev)
 {
-       int i;
-
        dev->ds->ops = &ksz9477_switch_ops;
 
        dev->port_mask = (1 << dev->info->port_cnt) - 1;
 
-       dev->ports = devm_kzalloc(dev->dev,
-                                 dev->info->port_cnt * sizeof(struct ksz_port),
-                                 GFP_KERNEL);
-       if (!dev->ports)
-               return -ENOMEM;
-       for (i = 0; i < dev->info->port_cnt; i++) {
-               spin_lock_init(&dev->ports[i].mib.stats64_lock);
-               mutex_init(&dev->ports[i].mib.cnt_mutex);
-               dev->ports[i].mib.counters =
-                       devm_kzalloc(dev->dev,
-                                    sizeof(u64) *
-                                    (dev->info->mib_cnt + 1),
-                                    GFP_KERNEL);
-               if (!dev->ports[i].mib.counters)
-                       return -ENOMEM;
-       }
-
-       /* set the real number of ports */
-       dev->ds->num_ports = dev->info->port_cnt;
-
        return 0;
 }
 
index 243032b..8f90bf2 100644 (file)
@@ -844,6 +844,7 @@ int ksz_switch_register(struct ksz_device *dev,
        phy_interface_t interface;
        unsigned int port_num;
        int ret;
+       int i;
 
        if (dev->pdata)
                dev->chip_id = dev->pdata->chip_id;
@@ -885,6 +886,26 @@ int ksz_switch_register(struct ksz_device *dev,
        if (ret)
                return ret;
 
+       dev->ports = devm_kzalloc(dev->dev,
+                                 dev->info->port_cnt * sizeof(struct ksz_port),
+                                 GFP_KERNEL);
+       if (!dev->ports)
+               return -ENOMEM;
+
+       for (i = 0; i < dev->info->port_cnt; i++) {
+               spin_lock_init(&dev->ports[i].mib.stats64_lock);
+               mutex_init(&dev->ports[i].mib.cnt_mutex);
+               dev->ports[i].mib.counters =
+                       devm_kzalloc(dev->dev,
+                                    sizeof(u64) * (dev->info->mib_cnt + 1),
+                                    GFP_KERNEL);
+               if (!dev->ports[i].mib.counters)
+                       return -ENOMEM;
+       }
+
+       /* set the real number of ports */
+       dev->ds->num_ports = dev->info->port_cnt;
+
        /* Host port interface will be self detected, or specifically set in
         * device tree.
         */