Commit 4f39a1f5 authored by Johannes Berg's avatar Johannes Berg

wireless: wext: use struct iwreq earlier in the call chain

To make it clear that we never use struct ifreq, cast from it
directly in the wext entrypoint and use struct iwreq from there
on. The next patch will remove the cast again and pass the
correct struct from the beginning.
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 8bfb3676
...@@ -914,13 +914,12 @@ int call_commit_handler(struct net_device *dev) ...@@ -914,13 +914,12 @@ int call_commit_handler(struct net_device *dev)
* Main IOCTl dispatcher. * Main IOCTl dispatcher.
* Check the type of IOCTL and call the appropriate wrapper... * Check the type of IOCTL and call the appropriate wrapper...
*/ */
static int wireless_process_ioctl(struct net *net, struct ifreq *ifr, static int wireless_process_ioctl(struct net *net, struct iwreq *iwr,
unsigned int cmd, unsigned int cmd,
struct iw_request_info *info, struct iw_request_info *info,
wext_ioctl_func standard, wext_ioctl_func standard,
wext_ioctl_func private) wext_ioctl_func private)
{ {
struct iwreq *iwr = (struct iwreq *) ifr;
struct net_device *dev; struct net_device *dev;
iw_handler handler; iw_handler handler;
...@@ -928,7 +927,7 @@ static int wireless_process_ioctl(struct net *net, struct ifreq *ifr, ...@@ -928,7 +927,7 @@ static int wireless_process_ioctl(struct net *net, struct ifreq *ifr,
* The copy_to/from_user() of ifr is also dealt with in there */ * The copy_to/from_user() of ifr is also dealt with in there */
/* Make sure the device exist */ /* Make sure the device exist */
if ((dev = __dev_get_by_name(net, ifr->ifr_name)) == NULL) if ((dev = __dev_get_by_name(net, iwr->ifr_name)) == NULL)
return -ENODEV; return -ENODEV;
/* A bunch of special cases, then the generic case... /* A bunch of special cases, then the generic case...
...@@ -974,7 +973,7 @@ static int wext_permission_check(unsigned int cmd) ...@@ -974,7 +973,7 @@ static int wext_permission_check(unsigned int cmd)
} }
/* entry point from dev ioctl */ /* entry point from dev ioctl */
static int wext_ioctl_dispatch(struct net *net, struct ifreq *ifr, static int wext_ioctl_dispatch(struct net *net, struct iwreq *iwr,
unsigned int cmd, struct iw_request_info *info, unsigned int cmd, struct iw_request_info *info,
wext_ioctl_func standard, wext_ioctl_func standard,
wext_ioctl_func private) wext_ioctl_func private)
...@@ -984,9 +983,9 @@ static int wext_ioctl_dispatch(struct net *net, struct ifreq *ifr, ...@@ -984,9 +983,9 @@ static int wext_ioctl_dispatch(struct net *net, struct ifreq *ifr,
if (ret) if (ret)
return ret; return ret;
dev_load(net, ifr->ifr_name); dev_load(net, iwr->ifr_name);
rtnl_lock(); rtnl_lock();
ret = wireless_process_ioctl(net, ifr, cmd, info, standard, private); ret = wireless_process_ioctl(net, iwr, cmd, info, standard, private);
rtnl_unlock(); rtnl_unlock();
return ret; return ret;
...@@ -1042,7 +1041,7 @@ int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd, ...@@ -1042,7 +1041,7 @@ int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd,
struct iw_request_info info = { .cmd = cmd, .flags = 0 }; struct iw_request_info info = { .cmd = cmd, .flags = 0 };
int ret; int ret;
ret = wext_ioctl_dispatch(net, ifr, cmd, &info, ret = wext_ioctl_dispatch(net, (void *)ifr, cmd, &info,
ioctl_standard_call, ioctl_standard_call,
ioctl_private_call); ioctl_private_call);
if (ret >= 0 && if (ret >= 0 &&
...@@ -1104,7 +1103,7 @@ int compat_wext_handle_ioctl(struct net *net, unsigned int cmd, ...@@ -1104,7 +1103,7 @@ int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
info.cmd = cmd; info.cmd = cmd;
info.flags = IW_REQUEST_FLAG_COMPAT; info.flags = IW_REQUEST_FLAG_COMPAT;
ret = wext_ioctl_dispatch(net, (struct ifreq *) &iwr, cmd, &info, ret = wext_ioctl_dispatch(net, &iwr, cmd, &info,
compat_standard_call, compat_standard_call,
compat_private_call); compat_private_call);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment