aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-12-21 06:46:01 -0500
committerDavid S. Miller <davem@davemloft.net>2008-06-16 21:31:55 -0400
commitd2911255590d9ca561a481b9dbebcfcbbf38fa4e (patch)
tree8050b7d2e93f69619903d07475452f7ab897a7cc /net/wireless
parentca1e8bb8e4e89e2769e2b39eb29fdcfc5c19cf89 (diff)
wext: Pass iwreq pointer down into standard/private handlers.
They have no need to see the object as an ifreq. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/wireless')
-rw-r--r--net/wireless/wext.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/net/wireless/wext.c b/net/wireless/wext.c
index 929d24120f37..e9c88172ec55 100644
--- a/net/wireless/wext.c
+++ b/net/wireless/wext.c
@@ -832,11 +832,10 @@ out:
832 * user space and kernel space. 832 * user space and kernel space.
833 */ 833 */
834static int ioctl_standard_call(struct net_device * dev, 834static int ioctl_standard_call(struct net_device * dev,
835 struct ifreq * ifr, 835 struct iwreq *iwr,
836 unsigned int cmd, 836 unsigned int cmd,
837 iw_handler handler) 837 iw_handler handler)
838{ 838{
839 struct iwreq * iwr = (struct iwreq *) ifr;
840 const struct iw_ioctl_description * descr; 839 const struct iw_ioctl_description * descr;
841 struct iw_request_info info; 840 struct iw_request_info info;
842 int ret = -EINVAL; 841 int ret = -EINVAL;
@@ -984,10 +983,9 @@ out:
984 return err; 983 return err;
985} 984}
986 985
987static int ioctl_private_call(struct net_device *dev, struct ifreq *ifr, 986static int ioctl_private_call(struct net_device *dev, struct iwreq *iwr,
988 unsigned int cmd, iw_handler handler) 987 unsigned int cmd, iw_handler handler)
989{ 988{
990 struct iwreq *iwr = (struct iwreq *) ifr;
991 int extra_size = 0, ret = -EINVAL; 989 int extra_size = 0, ret = -EINVAL;
992 const struct iw_priv_args *descr; 990 const struct iw_priv_args *descr;
993 struct iw_request_info info; 991 struct iw_request_info info;
@@ -1015,7 +1013,7 @@ static int ioctl_private_call(struct net_device *dev, struct ifreq *ifr,
1015} 1013}
1016 1014
1017/* ---------------------------------------------------------------- */ 1015/* ---------------------------------------------------------------- */
1018typedef int (*wext_ioctl_func)(struct net_device *, struct ifreq *, 1016typedef int (*wext_ioctl_func)(struct net_device *, struct iwreq *,
1019 unsigned int, iw_handler); 1017 unsigned int, iw_handler);
1020 1018
1021/* 1019/*
@@ -1027,6 +1025,7 @@ static int wireless_process_ioctl(struct net *net, struct ifreq *ifr,
1027 wext_ioctl_func standard, 1025 wext_ioctl_func standard,
1028 wext_ioctl_func private) 1026 wext_ioctl_func private)
1029{ 1027{
1028 struct iwreq *iwr = (struct iwreq *) ifr;
1030 struct net_device *dev; 1029 struct net_device *dev;
1031 iw_handler handler; 1030 iw_handler handler;
1032 1031
@@ -1041,11 +1040,11 @@ static int wireless_process_ioctl(struct net *net, struct ifreq *ifr,
1041 * Note that 'cmd' is already filtered in dev_ioctl() with 1040 * Note that 'cmd' is already filtered in dev_ioctl() with
1042 * (cmd >= SIOCIWFIRST && cmd <= SIOCIWLAST) */ 1041 * (cmd >= SIOCIWFIRST && cmd <= SIOCIWLAST) */
1043 if (cmd == SIOCGIWSTATS) 1042 if (cmd == SIOCGIWSTATS)
1044 return standard(dev, ifr, cmd, 1043 return standard(dev, iwr, cmd,
1045 &iw_handler_get_iwstats); 1044 &iw_handler_get_iwstats);
1046 1045
1047 if (cmd == SIOCGIWPRIV && dev->wireless_handlers) 1046 if (cmd == SIOCGIWPRIV && dev->wireless_handlers)
1048 return standard(dev, ifr, cmd, 1047 return standard(dev, iwr, cmd,
1049 &iw_handler_get_private); 1048 &iw_handler_get_private);
1050 1049
1051 /* Basic check */ 1050 /* Basic check */
@@ -1057,9 +1056,9 @@ static int wireless_process_ioctl(struct net *net, struct ifreq *ifr,
1057 if (handler) { 1056 if (handler) {
1058 /* Standard and private are not the same */ 1057 /* Standard and private are not the same */
1059 if (cmd < SIOCIWFIRSTPRIV) 1058 if (cmd < SIOCIWFIRSTPRIV)
1060 return standard(dev, ifr, cmd, handler); 1059 return standard(dev, iwr, cmd, handler);
1061 else 1060 else
1062 return private(dev, ifr, cmd, handler); 1061 return private(dev, iwr, cmd, handler);
1063 } 1062 }
1064 /* Old driver API : call driver ioctl handler */ 1063 /* Old driver API : call driver ioctl handler */
1065 if (dev->do_ioctl) 1064 if (dev->do_ioctl)