diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 524f554..4fed166 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -876,48 +876,25 @@
 
 static int nl80211_set_wds_peer(struct sk_buff *skb, struct genl_info *info)
 {
-	struct cfg80211_registered_device *rdev;
-	struct wireless_dev *wdev;
-	struct net_device *dev;
+	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	struct net_device *dev = info->user_ptr[1];
+	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	u8 *bssid;
-	int err;
 
 	if (!info->attrs[NL80211_ATTR_MAC])
 		return -EINVAL;
 
-	rtnl_lock();
+	if (netif_running(dev))
+		return -EBUSY;
 
-	err = get_rdev_dev_by_info_ifindex(info, &rdev, &dev);
-	if (err)
-		goto unlock_rtnl;
+	if (!rdev->ops->set_wds_peer)
+		return -EOPNOTSUPP;
 
-	wdev = dev->ieee80211_ptr;
-
-	if (netif_running(dev)) {
-		err = -EBUSY;
-		goto out;
-	}
-
-	if (!rdev->ops->set_wds_peer) {
-		err = -EOPNOTSUPP;
-		goto out;
-	}
-
-	if (wdev->iftype != NL80211_IFTYPE_WDS) {
-		err = -EOPNOTSUPP;
-		goto out;
-	}
+	if (wdev->iftype != NL80211_IFTYPE_WDS)
+		return -EOPNOTSUPP;
 
 	bssid = nla_data(info->attrs[NL80211_ATTR_MAC]);
-	err = rdev->ops->set_wds_peer(wdev->wiphy, dev, bssid);
-
-out:
-	cfg80211_unlock_rdev(rdev);
-	dev_put(dev);
-unlock_rtnl:
-	rtnl_unlock();
-
-	return err;
+	return rdev->ops->set_wds_peer(wdev->wiphy, dev, bssid);
 }
 
 
@@ -4860,6 +4837,8 @@
 		.doit = nl80211_set_wds_peer,
 		.policy = nl80211_policy,
 		.flags = GENL_ADMIN_PERM,
+		.internal_flags = NL80211_FLAG_NEED_NETDEV |
+				  NL80211_FLAG_NEED_RTNL,
 	},
 };
 
