Commit 03913349 authored by Max Filippov's avatar Max Filippov
Browse files

xtensa: iss/network: drop 'devices' list



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: default avatarMax Filippov <jcmvbkbc@gmail.com>
parent 32346491
Loading
Loading
Loading
Loading
+3 −18
Original line number Diff line number Diff line
@@ -37,10 +37,6 @@
#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;