--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -1564,7 +1564,7 @@ static int nl80211_dump_wiphy(struct sk_
+@@ -1593,7 +1593,7 @@ static int nl80211_dump_wiphy(struct sk_
/* attempt to fit multiple wiphy data chunks into the skb */
do {
ret = nl80211_send_wiphy(dev, skb,
- NETLINK_CB(cb->skb).portid,
+ NETLINK_CB_PORTID(cb->skb),
cb->nlh->nlmsg_seq,
- NLM_F_MULTI,
- split, &cb->args[1],
-@@ -1613,7 +1613,7 @@ static int nl80211_get_wiphy(struct sk_b
+ NLM_F_MULTI, state);
+ if (ret < 0) {
+@@ -1646,7 +1646,7 @@ static int nl80211_get_wiphy(struct sk_b
if (!msg)
return -ENOMEM;
- if (nl80211_send_wiphy(dev, msg, info->snd_portid, info->snd_seq, 0,
+ if (nl80211_send_wiphy(dev, msg, genl_info_snd_portid(info), info->snd_seq, 0,
- false, NULL, NULL, NULL) < 0) {
+ &state) < 0) {
nlmsg_free(msg);
return -ENOBUFS;
-@@ -2183,7 +2183,7 @@ static int nl80211_dump_interface(struct
+@@ -2221,7 +2221,7 @@ static int nl80211_dump_interface(struct
if_idx++;
continue;
}
cb->nlh->nlmsg_seq, NLM_F_MULTI,
rdev, wdev) < 0) {
goto out;
-@@ -2212,7 +2212,7 @@ static int nl80211_get_interface(struct
+@@ -2250,7 +2250,7 @@ static int nl80211_get_interface(struct
if (!msg)
return -ENOMEM;
dev, wdev) < 0) {
nlmsg_free(msg);
return -ENOBUFS;
-@@ -2445,7 +2445,7 @@ static int nl80211_new_interface(struct
+@@ -2483,7 +2483,7 @@ static int nl80211_new_interface(struct
break;
}
rdev, wdev) < 0) {
nlmsg_free(msg);
return -ENOBUFS;
-@@ -2580,7 +2580,7 @@ static int nl80211_get_key(struct sk_buf
+@@ -2618,7 +2618,7 @@ static int nl80211_get_key(struct sk_buf
if (!msg)
return -ENOMEM;
NL80211_CMD_NEW_KEY);
if (IS_ERR(hdr))
return PTR_ERR(hdr);
-@@ -3552,7 +3552,7 @@ static int nl80211_dump_station(struct s
+@@ -3587,7 +3587,7 @@ static int nl80211_dump_station(struct s
goto out_err;
if (nl80211_send_station(skb,
cb->nlh->nlmsg_seq, NLM_F_MULTI,
dev, wdev->netdev, mac_addr,
&sinfo) < 0)
-@@ -3598,7 +3598,7 @@ static int nl80211_get_station(struct sk
+@@ -3633,7 +3633,7 @@ static int nl80211_get_station(struct sk
if (!msg)
return -ENOMEM;
rdev, dev, mac_addr, &sinfo) < 0) {
nlmsg_free(msg);
return -ENOBUFS;
-@@ -4206,7 +4206,7 @@ static int nl80211_dump_mpath(struct sk_
+@@ -4241,7 +4241,7 @@ static int nl80211_dump_mpath(struct sk_
if (err)
goto out_err;
cb->nlh->nlmsg_seq, NLM_F_MULTI,
wdev->netdev, dst, next_hop,
&pinfo) < 0)
-@@ -4255,7 +4255,7 @@ static int nl80211_get_mpath(struct sk_b
+@@ -4290,7 +4290,7 @@ static int nl80211_get_mpath(struct sk_b
if (!msg)
return -ENOMEM;
dev, dst, next_hop, &pinfo) < 0) {
nlmsg_free(msg);
return -ENOBUFS;
-@@ -4519,7 +4519,7 @@ static int nl80211_get_mesh_config(struc
+@@ -4554,7 +4554,7 @@ static int nl80211_get_mesh_config(struc
msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
if (!msg)
return -ENOMEM;
NL80211_CMD_GET_MESH_CONFIG);
if (!hdr)
goto out;
-@@ -4878,7 +4878,7 @@ static int nl80211_get_reg(struct sk_buf
+@@ -4913,7 +4913,7 @@ static int nl80211_get_reg(struct sk_buf
if (!msg)
return -ENOBUFS;
NL80211_CMD_GET_REG);
if (!hdr)
goto put_failure;
-@@ -5557,7 +5557,7 @@ static int nl80211_send_bss(struct sk_bu
+@@ -5592,7 +5592,7 @@ static int nl80211_send_bss(struct sk_bu
ASSERT_WDEV_LOCK(wdev);
NL80211_CMD_NEW_SCAN_RESULTS);
if (!hdr)
return -1;
-@@ -5793,7 +5793,7 @@ static int nl80211_dump_survey(struct sk
+@@ -5828,7 +5828,7 @@ static int nl80211_dump_survey(struct sk
}
if (nl80211_send_survey(skb,
cb->nlh->nlmsg_seq, NLM_F_MULTI,
wdev->netdev, &survey) < 0)
goto out;
-@@ -6460,7 +6460,7 @@ static int nl80211_testmode_dump(struct
+@@ -6500,7 +6500,7 @@ static int nl80211_testmode_dump(struct
}
while (1) {
cb->nlh->nlmsg_seq, NLM_F_MULTI,
NL80211_CMD_TESTMODE);
struct nlattr *tmdata;
-@@ -6539,7 +6539,7 @@ struct sk_buff *cfg80211_testmode_alloc_
+@@ -6579,7 +6579,7 @@ struct sk_buff *cfg80211_testmode_alloc_
return NULL;
return __cfg80211_testmode_alloc_skb(rdev, approxlen,
rdev->testmode_info->snd_seq,
GFP_KERNEL);
}
-@@ -6905,7 +6905,7 @@ static int nl80211_remain_on_channel(str
+@@ -6945,7 +6945,7 @@ static int nl80211_remain_on_channel(str
if (!msg)
return -ENOMEM;
NL80211_CMD_REMAIN_ON_CHANNEL);
if (IS_ERR(hdr)) {
-@@ -7124,7 +7124,7 @@ static int nl80211_register_mgmt(struct
+@@ -7164,7 +7164,7 @@ static int nl80211_register_mgmt(struct
if (!rdev->ops->mgmt_tx)
return -EOPNOTSUPP;
nla_data(info->attrs[NL80211_ATTR_FRAME_MATCH]),
nla_len(info->attrs[NL80211_ATTR_FRAME_MATCH]));
}
-@@ -7205,7 +7205,7 @@ static int nl80211_tx_mgmt(struct sk_buf
+@@ -7245,7 +7245,7 @@ static int nl80211_tx_mgmt(struct sk_buf
if (!msg)
return -ENOMEM;
NL80211_CMD_FRAME);
if (IS_ERR(hdr)) {
-@@ -7320,7 +7320,7 @@ static int nl80211_get_power_save(struct
+@@ -7360,7 +7360,7 @@ static int nl80211_get_power_save(struct
if (!msg)
return -ENOMEM;
NL80211_CMD_GET_POWER_SAVE);
if (!hdr) {
err = -ENOBUFS;
-@@ -7631,7 +7631,7 @@ static int nl80211_get_wowlan(struct sk_
+@@ -7671,7 +7671,7 @@ static int nl80211_get_wowlan(struct sk_
if (!msg)
return -ENOMEM;
NL80211_CMD_GET_WOWLAN);
if (!hdr)
goto nla_put_failure;
-@@ -8056,7 +8056,7 @@ static int nl80211_register_unexpected_f
+@@ -8096,7 +8096,7 @@ static int nl80211_register_unexpected_f
if (wdev->ap_unexpected_nlportid)
return -EBUSY;
return 0;
}
-@@ -8086,7 +8086,7 @@ static int nl80211_probe_client(struct s
+@@ -8126,7 +8126,7 @@ static int nl80211_probe_client(struct s
if (!msg)
return -ENOMEM;
NL80211_CMD_PROBE_CLIENT);
if (IS_ERR(hdr)) {
-@@ -8130,13 +8130,13 @@ static int nl80211_register_beacons(stru
+@@ -8170,13 +8170,13 @@ static int nl80211_register_beacons(stru
/* First, check if already registered. */
spin_lock_bh(&rdev->beacon_registrations_lock);
list_for_each_entry(reg, &rdev->beacon_registrations, list) {
list_add(&nreg->list, &rdev->beacon_registrations);
spin_unlock_bh(&rdev->beacon_registrations_lock);
-@@ -8203,7 +8203,7 @@ static int nl80211_get_protocol_features
+@@ -8243,7 +8243,7 @@ static int nl80211_get_protocol_features
if (!msg)
return -ENOMEM;
NL80211_CMD_GET_PROTOCOL_FEATURES);
if (!hdr)
goto nla_put_failure;
-@@ -8278,7 +8278,7 @@ static int nl80211_crit_protocol_start(s
+@@ -8318,7 +8318,7 @@ static int nl80211_crit_protocol_start(s
ret = rdev_crit_proto_start(rdev, wdev, proto, duration);
if (!ret)
return ret;
}
-@@ -10652,12 +10652,12 @@ static int nl80211_netlink_notify(struct
+@@ -10693,12 +10693,12 @@ static int nl80211_netlink_notify(struct
list_for_each_entry_rcu(rdev, &cfg80211_rdev_list, list) {
list_for_each_entry_rcu(wdev, &rdev->wdev_list, list)