xtensa: iss/network: drop 'devices' list
authorMax Filippov <jcmvbkbc@gmail.com>
Thu, 7 Jul 2022 05:57:35 +0000 (22:57 -0700)
committerMax Filippov <jcmvbkbc@gmail.com>
Thu, 14 Jul 2022 07:54:31 +0000 (00:54 -0700)
There are two per-device lists in the ISS network driver: command line
parameters list and iss_net_private object list. The latter is only used
for duplicate checking in the function iss_net_setup where the former
should have been used.
Drop iss_net_private object list and associated code and use command
line parameters list in the iss_net_setup instead.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/platforms/iss/network.c

index fd84d489175897a07f1f09ee7bc261989bc45f02..2d566231688feb295755604b829e008e133e9753 100644 (file)
 #define ETH_HEADER_OTHER 14
 #define ISS_NET_TIMER_VALUE (HZ / 10)
 
-
-static DEFINE_SPINLOCK(devices_lock);
-static LIST_HEAD(devices);
-
 /* ------------------------------------------------------------------------- */
 
 /* We currently only support the TUNTAP transport protocol. */
@@ -70,8 +66,6 @@ struct iss_net_ops {
 /* This structure contains out private information for the driver. */
 
 struct iss_net_private {
-       struct list_head device_list;
-
        spinlock_t lock;
        struct net_device *dev;
        struct platform_device pdev;
@@ -488,7 +482,6 @@ static int iss_net_configure(int index, char *init)
 
        lp = netdev_priv(dev);
        *lp = (struct iss_net_private) {
-               .device_list            = LIST_HEAD_INIT(lp->device_list),
                .dev                    = dev,
                .index                  = index,
        };
@@ -521,10 +514,6 @@ static int iss_net_configure(int index, char *init)
                driver_registered = 1;
        }
 
-       spin_lock(&devices_lock);
-       list_add(&lp->device_list, &devices);
-       spin_unlock(&devices_lock);
-
        lp->pdev.id = index;
        lp->pdev.name = DRIVER_NAME;
        platform_device_register(&lp->pdev);
@@ -574,7 +563,7 @@ struct iss_net_init {
 
 static int __init iss_net_setup(char *str)
 {
-       struct iss_net_private *device = NULL;
+       struct iss_net_init *device = NULL;
        struct iss_net_init *new;
        struct list_head *ele;
        char *end;
@@ -595,16 +584,12 @@ static int __init iss_net_setup(char *str)
        }
        str = end;
 
-       spin_lock(&devices_lock);
-
-       list_for_each(ele, &devices) {
-               device = list_entry(ele, struct iss_net_private, device_list);
+       list_for_each(ele, &eth_cmd_line) {
+               device = list_entry(ele, struct iss_net_init, list);
                if (device->index == n)
                        break;
        }
 
-       spin_unlock(&devices_lock);
-
        if (device && device->index == n) {
                pr_err("Device %u already configured\n", n);
                return 1;