cfg80211: pass netdev to change_virtual_intf

If there was a reason I'm passing the ifidx I cannot
remember it any more and don't see one now, so let's
just pass the pointer itself.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Johannes Berg
2009-06-09 21:04:43 +02:00
committed by John W. Linville
parent e5a8a896f5
commit e36d56b648
6 changed files with 17 additions and 33 deletions

View File

@@ -767,7 +767,7 @@ static int nl80211_set_interface(struct sk_buff *skb, struct genl_info *info)
{
struct cfg80211_registered_device *drv;
struct vif_params params;
int err, ifindex;
int err;
enum nl80211_iftype otype, ntype;
struct net_device *dev;
u32 _flags, *flags = NULL;
@@ -781,9 +781,7 @@ static int nl80211_set_interface(struct sk_buff *skb, struct genl_info *info)
if (err)
goto unlock_rtnl;
ifindex = dev->ifindex;
otype = ntype = dev->ieee80211_ptr->iftype;
dev_put(dev);
if (info->attrs[NL80211_ATTR_IFTYPE]) {
ntype = nla_get_u32(info->attrs[NL80211_ATTR_IFTYPE]);
@@ -826,20 +824,20 @@ static int nl80211_set_interface(struct sk_buff *skb, struct genl_info *info)
}
if (change)
err = drv->ops->change_virtual_intf(&drv->wiphy, ifindex,
err = drv->ops->change_virtual_intf(&drv->wiphy, dev,
ntype, flags, &params);
else
err = 0;
dev = __dev_get_by_index(&init_net, ifindex);
WARN_ON(!dev || (!err && dev->ieee80211_ptr->iftype != ntype));
WARN_ON(!err && dev->ieee80211_ptr->iftype != ntype);
if (dev && !err && (ntype != otype)) {
if (!err && (ntype != otype)) {
if (otype == NL80211_IFTYPE_ADHOC)
cfg80211_clear_ibss(dev, false);
}
unlock:
dev_put(dev);
cfg80211_put_dev(drv);
unlock_rtnl:
rtnl_unlock();