staging: vt6655: remove multiple instances of driver loading.
authorMalcolm Priestley <tvboxspy@gmail.com>
Thu, 21 Aug 2014 20:40:48 +0000 (21:40 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 30 Aug 2014 20:49:34 +0000 (13:49 -0700)
The driver can only load once from the instance provided
by pci_dev.

struct vnt_private next, prev and pDevice_Infos are removed.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6655/device.h
drivers/staging/vt6655/device_main.c

index 2434a37..bc16ece 100644 (file)
@@ -331,9 +331,6 @@ typedef struct __device_opt {
 } OPTIONS, *POPTIONS;
 
 struct vnt_private {
-       struct vnt_private *next;
-       struct vnt_private *prev;
-
        struct pci_dev *pcid;
 
 #ifdef CONFIG_PM
index 1a94d4f..a441a5c 100644 (file)
@@ -247,7 +247,6 @@ DEVICE_PARAM(bDiversityANTEnable, "ANT diversity mode");
 //
 
 static int          device_nics             = 0;
-static struct vnt_private *pDevice_Infos = NULL;
 static struct net_device *root_device_dev = NULL;
 
 static CHIP_INFO chip_info_table[] = {
@@ -979,19 +978,8 @@ static void vt6655_init_info(struct pci_dev *pcid,
                             struct vnt_private **ppDevice,
                             PCHIP_INFO pChip_info)
 {
-       struct vnt_private *p;
-
        memset(*ppDevice, 0, sizeof(**ppDevice));
 
-       if (pDevice_Infos == NULL) {
-               pDevice_Infos = *ppDevice;
-       } else {
-               for (p = pDevice_Infos; p->next != NULL; p = p->next)
-                       do {} while (0);
-               p->next = *ppDevice;
-               (*ppDevice)->prev = p;
-       }
-
        (*ppDevice)->pcid = pcid;
        (*ppDevice)->chip_id = pChip_info->chip_id;
        (*ppDevice)->io_size = pChip_info->io_size;
@@ -1030,9 +1018,11 @@ static bool device_get_pci_info(struct vnt_private *pDevice,
 
 static void device_free_info(struct vnt_private *pDevice)
 {
-       struct vnt_private *ptr;
        struct net_device *dev = pDevice->dev;
 
+       if (!pDevice)
+               return;
+
        ASSERT(pDevice);
 //2008-0714-01<Add>by chester
        device_release_WPADEV(pDevice);
@@ -1042,21 +1032,6 @@ static void device_free_info(struct vnt_private *pDevice)
        if (wpa_set_wpadev(pDevice, 0) != 0)
                pr_err("unregister wpadev fail?\n");
 
-       if (pDevice_Infos == NULL)
-               return;
-
-       for (ptr = pDevice_Infos; ptr && (ptr != pDevice); ptr = ptr->next)
-               do {} while (0);
-
-       if (ptr == pDevice) {
-               if (ptr == pDevice_Infos)
-                       pDevice_Infos = ptr->next;
-               else
-                       ptr->prev->next = ptr->next;
-       } else {
-               pr_err("info struct not found\n");
-               return;
-       }
 #ifdef HOSTAP
        if (dev)
                vt6655_hostap_set_hostapd(pDevice, 0, 0);