and changed files
[powerpc.git] / net / wireless / wext.c
index dabc645..d6aaf65 100644 (file)
@@ -440,10 +440,8 @@ static const int event_type_pk_size[] = {
 /* ---------------------------------------------------------------- */
 /*
  * Return the driver handler associated with a specific Wireless Extension.
- * Called from various place, so make sure it remains efficient.
  */
-static inline iw_handler get_handler(struct net_device *dev,
-                                    unsigned int cmd)
+static iw_handler get_handler(struct net_device *dev, unsigned int cmd)
 {
        /* Don't "optimise" the following variable, it will crash */
        unsigned int    index;          /* *MUST* be unsigned */
@@ -470,7 +468,7 @@ static inline iw_handler get_handler(struct net_device *dev,
 /*
  * Get statistics out of the driver
  */
-static inline struct iw_statistics *get_wireless_stats(struct net_device *dev)
+static struct iw_statistics *get_wireless_stats(struct net_device *dev)
 {
        /* New location */
        if ((dev->wireless_handlers != NULL) &&
@@ -478,7 +476,7 @@ static inline struct iw_statistics *get_wireless_stats(struct net_device *dev)
                return dev->wireless_handlers->get_wireless_stats(dev);
 
        /* Not found */
-       return (struct iw_statistics *) NULL;
+       return NULL;
 }
 
 /* ---------------------------------------------------------------- */
@@ -500,14 +498,14 @@ static inline struct iw_statistics *get_wireless_stats(struct net_device *dev)
  * netif_running(dev) test. I'm open on that one...
  * Hopefully, the driver will remember to do a commit in "open()" ;-)
  */
-static inline int call_commit_handler(struct net_device *      dev)
+static int call_commit_handler(struct net_device *dev)
 {
        if ((netif_running(dev)) &&
-          (dev->wireless_handlers->standard[0] != NULL)) {
+          (dev->wireless_handlers->standard[0] != NULL))
                /* Call the commit handler on the driver */
                return dev->wireless_handlers->standard[0](dev, NULL,
                                                           NULL, NULL);
-       else
+       else
                return 0;               /* Command completed successfully */
 }
 
@@ -556,8 +554,7 @@ static int iw_handler_get_iwstats(struct net_device *               dev,
        struct iw_statistics *stats;
 
        stats = get_wireless_stats(dev);
-       if (stats != (struct iw_statistics *) NULL) {
-
+       if (stats) {
                /* Copy statistics to extra */
                memcpy(extra, stats, sizeof(struct iw_statistics));
                wrqu->data.length = sizeof(struct iw_statistics);
@@ -622,8 +619,8 @@ static int iw_handler_get_private(struct net_device *               dev,
 /*
  * Print one entry (line) of /proc/net/wireless
  */
-static __inline__ void wireless_seq_printf_stats(struct seq_file *seq,
-                                                struct net_device *dev)
+static void wireless_seq_printf_stats(struct seq_file *seq,
+                                     struct net_device *dev)
 {
        /* Get stats from the driver */
        struct iw_statistics *stats = get_wireless_stats(dev);
@@ -816,9 +813,8 @@ static int ioctl_standard_call(struct net_device *  dev,
                /* Create the kernel buffer */
                /*    kzalloc ensures NULL-termination for essid_compat */
                extra = kzalloc(extra_size, GFP_KERNEL);
-               if (extra == NULL) {
+               if (extra == NULL)
                        return -ENOMEM;
-               }
 
                /* If it is a SET, get all the extra data in here */
                if (IW_IS_SET(cmd) && (iwr->u.data.length != 0)) {
@@ -892,10 +888,8 @@ static int ioctl_standard_call(struct net_device * dev,
  * a iw_handler but process it in your ioctl handler (i.e. use the
  * old driver API).
  */
-static inline int ioctl_private_call(struct net_device *       dev,
-                                    struct ifreq *             ifr,
-                                    unsigned int               cmd,
-                                    iw_handler         handler)
+static int ioctl_private_call(struct net_device *dev, struct ifreq *ifr,
+                             unsigned int cmd, iw_handler handler)
 {
        struct iwreq *                  iwr = (struct iwreq *) ifr;
        const struct iw_priv_args *     descr = NULL;
@@ -961,18 +955,14 @@ static inline int ioctl_private_call(struct net_device *  dev,
                        if (iwr->u.data.length > (descr->set_args &
                                                 IW_PRIV_SIZE_MASK))
                                return -E2BIG;
-               } else {
-                       /* Check NULL pointer */
-                       if (iwr->u.data.pointer == NULL)
-                               return -EFAULT;
-               }
+               } else if (iwr->u.data.pointer == NULL)
+                       return -EFAULT;
 
                /* Always allocate for max space. Easier, and won't last
                 * long... */
                extra = kmalloc(extra_size, GFP_KERNEL);
-               if (extra == NULL) {
+               if (extra == NULL)
                        return -ENOMEM;
-               }
 
                /* If it is a SET, get all the extra data in here */
                if (IW_IS_SET(cmd) && (iwr->u.data.length != 0)) {
@@ -1035,53 +1025,31 @@ static int wireless_process_ioctl(struct ifreq *ifr, unsigned int cmd)
        /* A bunch of special cases, then the generic case...
         * Note that 'cmd' is already filtered in dev_ioctl() with
         * (cmd >= SIOCIWFIRST && cmd <= SIOCIWLAST) */
-       switch (cmd) {
-       case SIOCGIWSTATS:
-               /* Get Wireless Stats */
-               return ioctl_standard_call(dev,
-                                          ifr,
-                                          cmd,
+       if (cmd == SIOCGIWSTATS)
+               return ioctl_standard_call(dev, ifr, cmd,
                                           &iw_handler_get_iwstats);
 
-       case SIOCGIWPRIV:
-               /* Check if we have some wireless handlers defined */
-               if (dev->wireless_handlers != NULL) {
-                       /* We export to user space the definition of
-                        * the private handler ourselves */
-                       return ioctl_standard_call(dev,
-                                                  ifr,
-                                                  cmd,
-                                                  &iw_handler_get_private);
-               }
-               // ## Fall-through for old API ##
-       default:
-               /* Generic IOCTL */
-               /* Basic check */
-               if (!netif_device_present(dev))
-                       return -ENODEV;
-               /* New driver API : try to find the handler */
-               handler = get_handler(dev, cmd);
-               if (handler != NULL) {
-                       /* Standard and private are not the same */
-                       if (cmd < SIOCIWFIRSTPRIV)
-                               return ioctl_standard_call(dev,
-                                                          ifr,
-                                                          cmd,
-                                                          handler);
-                       else
-                               return ioctl_private_call(dev,
-                                                         ifr,
-                                                         cmd,
-                                                         handler);
-               }
-               /* Old driver API : call driver ioctl handler */
-               if (dev->do_ioctl) {
-                       return dev->do_ioctl(dev, ifr, cmd);
-               }
-               return -EOPNOTSUPP;
+       if (cmd == SIOCGIWPRIV && dev->wireless_handlers)
+               return ioctl_standard_call(dev, ifr, cmd,
+                                          &iw_handler_get_private);
+
+       /* Basic check */
+       if (!netif_device_present(dev))
+               return -ENODEV;
+
+       /* New driver API : try to find the handler */
+       handler = get_handler(dev, cmd);
+       if (handler) {
+               /* Standard and private are not the same */
+               if (cmd < SIOCIWFIRSTPRIV)
+                       return ioctl_standard_call(dev, ifr, cmd, handler);
+               else
+                       return ioctl_private_call(dev, ifr, cmd, handler);
        }
-       /* Not reached */
-       return -EINVAL;
+       /* Old driver API : call driver ioctl handler */
+       if (dev->do_ioctl)
+               return dev->do_ioctl(dev, ifr, cmd);
+       return -EOPNOTSUPP;
 }
 
 /* entry point from dev ioctl */
@@ -1093,9 +1061,10 @@ int wext_handle_ioctl(struct ifreq *ifr, unsigned int cmd,
        /* If command is `set a parameter', or
         * `get the encoding parameters', check if
         * the user has the right to do it */
-       if (IW_IS_SET(cmd) || cmd == SIOCGIWENCODE || cmd == SIOCGIWENCODEEXT)
-               if (!capable(CAP_NET_ADMIN))
-                       return -EPERM;
+       if ((IW_IS_SET(cmd) || cmd == SIOCGIWENCODE || cmd == SIOCGIWENCODEEXT)
+           && !capable(CAP_NET_ADMIN))
+               return -EPERM;
+
        dev_load(ifr->ifr_name);
        rtnl_lock();
        ret = wireless_process_ioctl(ifr, cmd);
@@ -1155,11 +1124,8 @@ static DECLARE_TASKLET(wireless_nlevent_tasklet, wireless_nlevent_process, 0);
  * current wireless config. Dumping the wireless config is far too
  * expensive (for each parameter, the driver need to query the hardware).
  */
-static inline int rtnetlink_fill_iwinfo(struct sk_buff *       skb,
-                                       struct net_device *     dev,
-                                       int                     type,
-                                       char *                  event,
-                                       int                     event_len)
+static int rtnetlink_fill_iwinfo(struct sk_buff *skb, struct net_device *dev,
+                                int type, char *event, int event_len)
 {
        struct ifinfomsg *r;
        struct nlmsghdr  *nlh;
@@ -1193,9 +1159,7 @@ rtattr_failure:
  * Andrzej Krzysztofowicz mandated that I used a IFLA_XXX field
  * within a RTM_NEWLINK event.
  */
-static inline void rtmsg_iwinfo(struct net_device *    dev,
-                               char *                  event,
-                               int                     event_len)
+static void rtmsg_iwinfo(struct net_device *dev, char *event, int event_len)
 {
        struct sk_buff *skb;
        int size = NLMSG_GOODSIZE;
@@ -1289,7 +1253,7 @@ void wireless_send_event(struct net_device *      dev,
        event->len = event_len;
        event->cmd = cmd;
        memcpy(&event->u, ((char *) wrqu) + wrqu_off, hdr_len - IW_EV_LCP_LEN);
-       if (extra != NULL)
+       if (extra)
                memcpy(((char *) event) + hdr_len, extra, extra_len);
 
        /* Send via the RtNetlink event channel */
@@ -1300,6 +1264,7 @@ void wireless_send_event(struct net_device *      dev,
 
        return;         /* Always success, I guess ;-) */
 }
+EXPORT_SYMBOL(wireless_send_event);
 
 /********************** ENHANCED IWSPY SUPPORT **********************/
 /*
@@ -1319,11 +1284,11 @@ void wireless_send_event(struct net_device *    dev,
  * Because this is called on the Rx path via wireless_spy_update(),
  * we want it to be efficient...
  */
-static inline struct iw_spy_data * get_spydata(struct net_device *dev)
+static inline struct iw_spy_data *get_spydata(struct net_device *dev)
 {
        /* This is the new way */
        if (dev->wireless_data)
-               return(dev->wireless_data->spy_data);
+               return dev->wireless_data->spy_data;
        return NULL;
 }
 
@@ -1377,6 +1342,7 @@ int iw_handler_set_spy(struct net_device *        dev,
 
        return 0;
 }
+EXPORT_SYMBOL(iw_handler_set_spy);
 
 /*------------------------------------------------------------------*/
 /*
@@ -1412,6 +1378,7 @@ int iw_handler_get_spy(struct net_device *        dev,
                spydata->spy_stat[i].updated &= ~IW_QUAL_ALL_UPDATED;
        return 0;
 }
+EXPORT_SYMBOL(iw_handler_get_spy);
 
 /*------------------------------------------------------------------*/
 /*
@@ -1438,6 +1405,7 @@ int iw_handler_set_thrspy(struct net_device *     dev,
 
        return 0;
 }
+EXPORT_SYMBOL(iw_handler_set_thrspy);
 
 /*------------------------------------------------------------------*/
 /*
@@ -1461,6 +1429,7 @@ int iw_handler_get_thrspy(struct net_device *     dev,
 
        return 0;
 }
+EXPORT_SYMBOL(iw_handler_get_thrspy);
 
 /*------------------------------------------------------------------*/
 /*
@@ -1537,10 +1506,4 @@ void wireless_spy_update(struct net_device *     dev,
                }
        }
 }
-
-EXPORT_SYMBOL(iw_handler_get_spy);
-EXPORT_SYMBOL(iw_handler_get_thrspy);
-EXPORT_SYMBOL(iw_handler_set_spy);
-EXPORT_SYMBOL(iw_handler_set_thrspy);
-EXPORT_SYMBOL(wireless_send_event);
 EXPORT_SYMBOL(wireless_spy_update);