]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/staging/wlan-ng/p80211netdev.c
Staging: wlan-ng: Delete a large pile of now-unused code.
[linux-2.6-omap-h63xx.git] / drivers / staging / wlan-ng / p80211netdev.c
index 11f84a829e14a4d4595259c6184963b0a0e00cd7..c050c56805ecf1d2ee026e39339a2af2b39e61e8 100644 (file)
 #include <linux/ethtool.h>
 #endif
 
-#if WIRELESS_EXT > 12
 #include <net/iw_handler.h>
-#endif
 #include <net/net_namespace.h>
 
 /*================================================================*/
 /* Project Includes */
 
-#include "version.h"
 #include "wlan_compat.h"
 #include "p80211types.h"
 #include "p80211hdr.h"
 
 #define __NO_VERSION__         /* prevent the static definition */
 
-#ifdef CONFIG_PROC_FS
-static struct proc_dir_entry   *proc_p80211;
-#endif
-
 /*================================================================*/
 /* Local Function Declarations */
 
@@ -135,18 +128,8 @@ static void p80211knetdev_set_multicast_list(netdevice_t *dev);
 static int p80211knetdev_do_ioctl(netdevice_t *dev, struct ifreq *ifr, int cmd);
 static int p80211knetdev_set_mac_address(netdevice_t *dev, void *addr);
 static void p80211knetdev_tx_timeout(netdevice_t *netdev);
-static int p80211_rx_typedrop( wlandevice_t *wlandev, UINT16 fc);
-
-#ifdef CONFIG_PROC_FS
-static int
-p80211netdev_proc_read(
-       char    *page,
-       char    **start,
-       off_t   offset,
-       int     count,
-       int     *eof,
-       void    *data);
-#endif
+static int p80211_rx_typedrop( wlandevice_t *wlandev, u16 fc);
+
 
 /*================================================================*/
 /* Function Definitions */
@@ -167,14 +150,6 @@ void p80211netdev_startup(void)
 {
        DBFENTER;
 
-#ifdef CONFIG_PROC_FS
-       if (init_net.proc_net != NULL) {
-               proc_p80211 = create_proc_entry(
-                               "p80211",
-                               (S_IFDIR|S_IRUGO|S_IXUGO),
-                               init_net.proc_net);
-       }
-#endif
        DBFEXIT;
        return;
 }
@@ -195,11 +170,6 @@ void
 p80211netdev_shutdown(void)
 {
        DBFENTER;
-#ifdef CONFIG_PROC_FS
-       if (proc_p80211 != NULL) {
-               remove_proc_entry("p80211", init_net.proc_net);
-       }
-#endif
        DBFEXIT;
 }
 
@@ -244,7 +214,7 @@ static int p80211knetdev_init( netdevice_t *netdev)
 static struct net_device_stats*
 p80211knetdev_get_stats(netdevice_t *netdev)
 {
-       wlandevice_t    *wlandev = (wlandevice_t*)netdev->priv;
+       wlandevice_t    *wlandev = netdev->ml_priv;
        DBFENTER;
 
        /* TODO: review the MIB stats for items that correspond to
@@ -272,7 +242,7 @@ p80211knetdev_get_stats(netdevice_t *netdev)
 static int p80211knetdev_open( netdevice_t *netdev )
 {
        int             result = 0; /* success */
-       wlandevice_t    *wlandev = (wlandevice_t*)(netdev->priv);
+       wlandevice_t    *wlandev = netdev->ml_priv;
 
        DBFENTER;
 
@@ -285,10 +255,7 @@ static int p80211knetdev_open( netdevice_t *netdev )
        if ( wlandev->open != NULL) {
                result = wlandev->open(wlandev);
                if ( result == 0 ) {
-#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,3,43) )
-                       netdev->interrupt = 0;
-#endif
-                       p80211netdev_start_queue(wlandev);
+                       netif_start_queue(wlandev->netdev);
                        wlandev->state = WLAN_DEVICE_OPEN;
                }
        } else {
@@ -315,7 +282,7 @@ static int p80211knetdev_open( netdevice_t *netdev )
 static int p80211knetdev_stop( netdevice_t *netdev )
 {
        int             result = 0;
-       wlandevice_t    *wlandev = (wlandevice_t*)(netdev->priv);
+       wlandevice_t    *wlandev = netdev->ml_priv;
 
        DBFENTER;
 
@@ -323,7 +290,7 @@ static int p80211knetdev_stop( netdevice_t *netdev )
                result = wlandev->close(wlandev);
        }
 
-       p80211netdev_stop_queue(wlandev);
+       netif_stop_queue(wlandev->netdev);
        wlandev->state = WLAN_DEVICE_CLOSED;
 
        DBFEXIT;
@@ -376,7 +343,7 @@ static void p80211netdev_rx_bh(unsigned long arg)
        struct sk_buff *skb = NULL;
        netdevice_t     *dev = wlandev->netdev;
        p80211_hdr_a3_t *hdr;
-       UINT16 fc;
+       u16 fc;
 
         DBFENTER;
 
@@ -460,7 +427,7 @@ static int p80211knetdev_hard_start_xmit( struct sk_buff *skb, netdevice_t *netd
 {
        int             result = 0;
        int             txresult = -1;
-       wlandevice_t    *wlandev = (wlandevice_t*)netdev->priv;
+       wlandevice_t    *wlandev = netdev->ml_priv;
        p80211_hdr_t    p80211_hdr;
        p80211_metawep_t p80211_wep;
 
@@ -478,15 +445,6 @@ static int p80211knetdev_hard_start_xmit( struct sk_buff *skb, netdevice_t *netd
        memset(&p80211_hdr, 0, sizeof(p80211_hdr_t));
        memset(&p80211_wep, 0, sizeof(p80211_metawep_t));
 
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,3,38) )
-       if ( test_and_set_bit(0, (void*)&(netdev->tbusy)) != 0 ) {
-               /* We've been called w/ tbusy set, has the tx */
-               /* path stalled?   */
-               WLAN_LOG_DEBUG(1, "called when tbusy set\n");
-               result = 1;
-               goto failed;
-       }
-#else
        if ( netif_queue_stopped(netdev) ) {
                WLAN_LOG_DEBUG(1, "called when queue stopped.\n");
                result = 1;
@@ -495,12 +453,6 @@ static int p80211knetdev_hard_start_xmit( struct sk_buff *skb, netdevice_t *netd
 
        netif_stop_queue(netdev);
 
-       /* No timeout handling here, 2.3.38+ kernels call the
-        * timeout function directly.
-        * TODO: Add timeout handling.
-       */
-#endif
-
        /* Check to see that a valid mode is set */
        switch( wlandev->macmode ) {
        case WLAN_MACMODE_IBSS_STA:
@@ -513,7 +465,7 @@ static int p80211knetdev_hard_start_xmit( struct sk_buff *skb, netdevice_t *netd
                 * TODO: we need a saner way to handle this
                 */
                if(skb->protocol != ETH_P_80211_RAW) {
-                       p80211netdev_start_queue(wlandev);
+                       netif_start_queue(wlandev->netdev);
                        WLAN_LOG_NOTICE(
                                "Tx attempt prior to association, frame dropped.\n");
                        wlandev->linux_stats.tx_dropped++;
@@ -557,7 +509,7 @@ static int p80211knetdev_hard_start_xmit( struct sk_buff *skb, netdevice_t *netd
        if ( txresult == 0) {
                /* success and more buf */
                /* avail, re: hw_txdata */
-               p80211netdev_wake_queue(wlandev);
+               netif_wake_queue(wlandev->netdev);
                result = 0;
        } else if ( txresult == 1 ) {
                /* success, no more avail */
@@ -603,7 +555,7 @@ static int p80211knetdev_hard_start_xmit( struct sk_buff *skb, netdevice_t *netd
 ----------------------------------------------------------------*/
 static void p80211knetdev_set_multicast_list(netdevice_t *dev)
 {
-       wlandevice_t    *wlandev = (wlandevice_t*)dev->priv;
+       wlandevice_t    *wlandev = dev->ml_priv;
 
        DBFENTER;
 
@@ -619,7 +571,7 @@ static void p80211knetdev_set_multicast_list(netdevice_t *dev)
 
 static int p80211netdev_ethtool(wlandevice_t *wlandev, void __user *useraddr)
 {
-       UINT32 ethcmd;
+       u32 ethcmd;
        struct ethtool_drvinfo info;
        struct ethtool_value edata;
 
@@ -686,7 +638,7 @@ static int p80211netdev_ethtool(wlandevice_t *wlandev, void __user *useraddr)
 *              -EFAULT memory fault copying msg from user buffer
 *              -ENOMEM unable to allocate kernel msg buffer
 *              -ENOSYS bad magic, it the cmd really for us?
-*              -EINTR  sleeping on cmd, awakened by signal, cmd cancelled.
+*              -EintR  sleeping on cmd, awakened by signal, cmd cancelled.
 *
 * Call Context:
 *      Process thread (ioctl caller).  TODO: SMP support may require
@@ -696,22 +648,12 @@ static int p80211knetdev_do_ioctl(netdevice_t *dev, struct ifreq *ifr, int cmd)
 {
        int                     result = 0;
        p80211ioctl_req_t       *req = (p80211ioctl_req_t*)ifr;
-       wlandevice_t            *wlandev = (wlandevice_t*)dev->priv;
-       UINT8                   *msgbuf;
+       wlandevice_t            *wlandev = dev->ml_priv;
+       u8                      *msgbuf;
        DBFENTER;
 
        WLAN_LOG_DEBUG(2, "rx'd ioctl, cmd=%d, len=%d\n", cmd, req->len);
 
-#if WIRELESS_EXT < 13
-       /* Is this a wireless extensions ioctl? */
-       if ((cmd >= SIOCIWFIRST) && (cmd <= SIOCIWLAST)) {
-               if ((result = p80211wext_support_ioctl(dev, ifr, cmd))
-                   != (-EOPNOTSUPP)) {
-                       goto bail;
-               }
-       }
-#endif
-
 #ifdef SIOCETHTOOL
        if (cmd == SIOCETHTOOL) {
                result = p80211netdev_ethtool(wlandev, (void __user *) ifr->ifr_data);
@@ -792,15 +734,9 @@ static int p80211knetdev_set_mac_address(netdevice_t *dev, void *addr)
 
        DBFENTER;
        /* If we're running, we don't allow MAC address changes */
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,3,38) )
-       if ( dev->start) {
-               return -EBUSY;
-       }
-#else
        if (netif_running(dev)) {
                return -EBUSY;
        }
-#endif
 
        /* Set up some convenience pointers. */
        mibattr = &dot11req.mibattribute;
@@ -812,7 +748,7 @@ static int p80211knetdev_set_mac_address(netdevice_t *dev, void *addr)
        dot11req.msgcode = DIDmsg_dot11req_mibset;
        dot11req.msglen = sizeof(p80211msg_dot11req_mibset_t);
        memcpy(dot11req.devname,
-               ((wlandevice_t*)(dev->priv))->name,
+               ((wlandevice_t *)dev->ml_priv)->name,
                WLAN_DEVNAMELEN_MAX - 1);
 
        /* Set up the mibattribute argument */
@@ -833,7 +769,7 @@ static int p80211knetdev_set_mac_address(netdevice_t *dev, void *addr)
        resultcode->data = 0;
 
        /* now fire the request */
-       result = p80211req_dorequest(dev->priv, (UINT8*)&dot11req);
+       result = p80211req_dorequest(dev->ml_priv, (u8 *)&dot11req);
 
        /* If the request wasn't successful, report an error and don't
         * change the netdev address
@@ -917,7 +853,7 @@ int wlan_setup(wlandevice_t *wlandev)
                memset( dev, 0, sizeof(netdevice_t));
                ether_setup(dev);
                wlandev->netdev = dev;
-               dev->priv = wlandev;
+               dev->ml_priv = wlandev;
                dev->hard_start_xmit =  p80211knetdev_hard_start_xmit;
                dev->get_stats =        p80211knetdev_get_stats;
 #ifdef HAVE_PRIVATE_IOCTL
@@ -930,21 +866,12 @@ int wlan_setup(wlandevice_t *wlandev)
                dev->open =             p80211knetdev_open;
                dev->stop =             p80211knetdev_stop;
 
-#ifdef CONFIG_NET_WIRELESS
-#if ((WIRELESS_EXT < 17) && (WIRELESS_EXT < 21))
+#if (WIRELESS_EXT < 21)
                dev->get_wireless_stats = p80211wext_get_wireless_stats;
 #endif
-#if WIRELESS_EXT > 12
                dev->wireless_handlers = &p80211wext_handler_def;
-#endif
-#endif
 
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,3,38) )
-               dev->tbusy = 1;
-               dev->start = 0;
-#else
                netif_stop_queue(dev);
-#endif
 #ifdef HAVE_CHANGE_MTU
                dev->change_mtu = wlan_change_mtu;
 #endif
@@ -1039,32 +966,7 @@ int register_wlandev(wlandevice_t *wlandev)
                return -EIO;
        }
 
-#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0) )
-       dev->name = wlandev->name;
-#else
        strcpy(wlandev->name, dev->name);
-#endif
-
-#ifdef CONFIG_PROC_FS
-       if (proc_p80211) {
-               wlandev->procdir = proc_mkdir(wlandev->name, proc_p80211);
-               if ( wlandev->procdir )
-                       wlandev->procwlandev =
-                               create_proc_read_entry("wlandev", 0,
-                                                      wlandev->procdir,
-                                                      p80211netdev_proc_read,
-                                                      wlandev);
-               if (wlandev->nsd_proc_read)
-                       create_proc_read_entry("nsd", 0,
-                                              wlandev->procdir,
-                                              wlandev->nsd_proc_read,
-                                              wlandev);
-       }
-#endif
-
-#ifdef CONFIG_HOTPLUG
-       p80211_run_sbin_hotplug(wlandev, WLAN_HOTPLUG_REGISTER);
-#endif
 
        DBFEXIT;
        return 0;
@@ -1094,22 +996,6 @@ int unregister_wlandev(wlandevice_t *wlandev)
 
        DBFENTER;
 
-#ifdef CONFIG_HOTPLUG
-       p80211_run_sbin_hotplug(wlandev, WLAN_HOTPLUG_REMOVE);
-#endif
-
-#ifdef CONFIG_PROC_FS
-       if ( wlandev->procwlandev ) {
-               remove_proc_entry("wlandev", wlandev->procdir);
-       }
-       if ( wlandev->nsd_proc_read ) {
-               remove_proc_entry("nsd", wlandev->procdir);
-       }
-       if (wlandev->procdir) {
-               remove_proc_entry(wlandev->name, proc_p80211);
-       }
-#endif
-
        unregister_netdev(wlandev->netdev);
 
        /* Now to clean out the rx queue */
@@ -1121,76 +1007,6 @@ int unregister_wlandev(wlandevice_t *wlandev)
        return 0;
 }
 
-#ifdef CONFIG_PROC_FS
-/*----------------------------------------------------------------
-* proc_read
-*
-* Read function for /proc/net/p80211/<device>/wlandev
-*
-* Arguments:
-*      buf
-*      start
-*      offset
-*      count
-*      eof
-*      data
-* Returns:
-*      zero on success, non-zero otherwise.
-* Call Context:
-*      Can be either interrupt or not.
-----------------------------------------------------------------*/
-static int
-p80211netdev_proc_read(
-       char    *page,
-       char    **start,
-       off_t   offset,
-       int     count,
-       int     *eof,
-       void    *data)
-{
-       char     *p = page;
-       wlandevice_t *wlandev = (wlandevice_t *) data;
-
-       DBFENTER;
-       if (offset != 0) {
-               *eof = 1;
-               goto exit;
-       }
-
-       p += sprintf(p, "p80211 version: %s (%s)\n\n",
-                    WLAN_RELEASE, WLAN_BUILD_DATE);
-       p += sprintf(p, "name       : %s\n", wlandev->name);
-       p += sprintf(p, "nsd name   : %s\n", wlandev->nsdname);
-       p += sprintf(p, "address    : %02x:%02x:%02x:%02x:%02x:%02x\n",
-                    wlandev->netdev->dev_addr[0], wlandev->netdev->dev_addr[1], wlandev->netdev->dev_addr[2],
-                    wlandev->netdev->dev_addr[3], wlandev->netdev->dev_addr[4], wlandev->netdev->dev_addr[5]);
-       p += sprintf(p, "nsd caps   : %s%s%s%s%s%s%s%s%s%s\n",
-                    (wlandev->nsdcaps & P80211_NSDCAP_HARDWAREWEP) ? "wep_hw " : "",
-                    (wlandev->nsdcaps & P80211_NSDCAP_TIEDWEP) ? "wep_tied " : "",
-                    (wlandev->nsdcaps & P80211_NSDCAP_NOHOSTWEP) ? "wep_hw_only " : "",
-                    (wlandev->nsdcaps & P80211_NSDCAP_PBCC) ? "pbcc " : "",
-                    (wlandev->nsdcaps & P80211_NSDCAP_SHORT_PREAMBLE) ? "short_preamble " : "",
-                    (wlandev->nsdcaps & P80211_NSDCAP_AGILITY) ? "agility " : "",
-                    (wlandev->nsdcaps & P80211_NSDCAP_AP_RETRANSMIT) ? "ap_retransmit " : "",
-                    (wlandev->nsdcaps & P80211_NSDCAP_HWFRAGMENT) ? "hw_frag " : "",
-                    (wlandev->nsdcaps & P80211_NSDCAP_AUTOJOIN) ? "autojoin " : "",
-                    (wlandev->nsdcaps & P80211_NSDCAP_NOSCAN) ? "" : "scan ");
-
-
-       p += sprintf(p, "bssid      : %02x:%02x:%02x:%02x:%02x:%02x\n",
-                    wlandev->bssid[0], wlandev->bssid[1], wlandev->bssid[2],
-                    wlandev->bssid[3], wlandev->bssid[4], wlandev->bssid[5]);
-
-       p += sprintf(p, "Enabled    : %s%s\n",
-                    (wlandev->shortpreamble) ? "short_preamble " : "",
-                    (wlandev->hostwep & HOSTWEP_PRIVACYINVOKED) ? "privacy" : "");
-
-
- exit:
-       DBFEXIT;
-       return (p - page);
-}
-#endif
 
 /*----------------------------------------------------------------
 * p80211netdev_hwremoved
@@ -1227,7 +1043,7 @@ void p80211netdev_hwremoved(wlandevice_t *wlandev)
        DBFENTER;
        wlandev->hwremoved = 1;
        if ( wlandev->state == WLAN_DEVICE_OPEN) {
-               p80211netdev_stop_queue(wlandev);
+               netif_stop_queue(wlandev->netdev);
        }
 
        netif_device_detach(wlandev->netdev);
@@ -1257,10 +1073,10 @@ void p80211netdev_hwremoved(wlandevice_t *wlandev)
 * Call context:
 *      interrupt
 ----------------------------------------------------------------*/
-static int p80211_rx_typedrop( wlandevice_t *wlandev, UINT16 fc)
+static int p80211_rx_typedrop( wlandevice_t *wlandev, u16 fc)
 {
-       UINT16  ftype;
-       UINT16  fstype;
+       u16     ftype;
+       u16     fstype;
        int     drop = 0;
        /* Classify frame, increment counter */
        ftype = WLAN_GET_FC_FTYPE(fc);
@@ -1416,78 +1232,9 @@ static int p80211_rx_typedrop( wlandevice_t *wlandev, UINT16 fc)
        return drop;
 }
 
-#ifdef CONFIG_HOTPLUG
-/* Notify userspace when a netdevice event occurs,
- * by running '/sbin/hotplug net' with certain
- * environment variables set.
- */
-int p80211_run_sbin_hotplug(wlandevice_t *wlandev, char *action)
-{
-        char *argv[3], *envp[7], ifname[12 + IFNAMSIZ], action_str[32];
-       char nsdname[32], wlan_wext[32];
-        int i;
-
-       if (wlandev) {
-               sprintf(ifname, "INTERFACE=%s", wlandev->name);
-               sprintf(nsdname, "NSDNAME=%s", wlandev->nsdname);
-       } else {
-               sprintf(ifname, "INTERFACE=null");
-               sprintf(nsdname, "NSDNAME=null");
-       }
-
-       sprintf(wlan_wext, "WLAN_WEXT=%s", wlan_wext_write ? "y" : "");
-        sprintf(action_str, "ACTION=%s", action);
-
-        i = 0;
-        argv[i++] = hotplug_path;
-        argv[i++] = "wlan";
-        argv[i] = NULL;
-
-        i = 0;
-        /* minimal command environment */
-        envp [i++] = "HOME=/";
-        envp [i++] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
-        envp [i++] = ifname;
-        envp [i++] = action_str;
-        envp [i++] = nsdname;
-        envp [i++] = wlan_wext;
-        envp [i] = NULL;
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,62))
-        return call_usermodehelper(argv [0], argv, envp);
-#else
-        return call_usermodehelper(argv [0], argv, envp, 0);
-#endif
-}
-
-#endif
-
-
-void    p80211_suspend(wlandevice_t *wlandev)
-{
-       DBFENTER;
-
-#ifdef CONFIG_HOTPLUG
-       p80211_run_sbin_hotplug(wlandev, WLAN_HOTPLUG_SUSPEND);
-#endif
-
-       DBFEXIT;
-}
-
-void    p80211_resume(wlandevice_t *wlandev)
-{
-       DBFENTER;
-
-#ifdef CONFIG_HOTPLUG
-       p80211_run_sbin_hotplug(wlandev, WLAN_HOTPLUG_RESUME);
-#endif
-
-       DBFEXIT;
-}
-
 static void p80211knetdev_tx_timeout( netdevice_t *netdev)
 {
-       wlandevice_t    *wlandev = (wlandevice_t*)netdev->priv;
+       wlandevice_t    *wlandev = netdev->ml_priv;
        DBFENTER;
 
        if (wlandev->tx_timeout) {
@@ -1495,7 +1242,7 @@ static void p80211knetdev_tx_timeout( netdevice_t *netdev)
        } else {
                WLAN_LOG_WARNING("Implement tx_timeout for %s\n",
                                 wlandev->nsdname);
-               p80211netdev_wake_queue(wlandev);
+               netif_wake_queue(wlandev->netdev);
        }
 
        DBFEXIT;