|
@@ -8585,6 +8585,12 @@ static int nl80211_testmode_dump(struct sk_buff *skb,
|
|
|
* so we need to offset by 1.
|
|
|
*/
|
|
|
phy_idx = cb->args[0] - 1;
|
|
|
+
|
|
|
+ rdev = cfg80211_rdev_by_wiphy_idx(phy_idx);
|
|
|
+ if (!rdev) {
|
|
|
+ err = -ENOENT;
|
|
|
+ goto out_err;
|
|
|
+ }
|
|
|
} else {
|
|
|
struct nlattr **attrbuf = genl_family_attrbuf(&nl80211_fam);
|
|
|
|
|
@@ -8599,7 +8605,6 @@ static int nl80211_testmode_dump(struct sk_buff *skb,
|
|
|
goto out_err;
|
|
|
}
|
|
|
phy_idx = rdev->wiphy_idx;
|
|
|
- rdev = NULL;
|
|
|
|
|
|
if (attrbuf[NL80211_ATTR_TESTDATA])
|
|
|
cb->args[1] = (long)attrbuf[NL80211_ATTR_TESTDATA];
|
|
@@ -8610,12 +8615,6 @@ static int nl80211_testmode_dump(struct sk_buff *skb,
|
|
|
data_len = nla_len((void *)cb->args[1]);
|
|
|
}
|
|
|
|
|
|
- rdev = cfg80211_rdev_by_wiphy_idx(phy_idx);
|
|
|
- if (!rdev) {
|
|
|
- err = -ENOENT;
|
|
|
- goto out_err;
|
|
|
- }
|
|
|
-
|
|
|
if (!rdev->ops->testmode_dump) {
|
|
|
err = -EOPNOTSUPP;
|
|
|
goto out_err;
|