@@ -551,13 +551,14 @@ static int nl80211_prepare_wdev_dump(struct sk_buff *skb,
551
551
552
552
if (!cb -> args [0 ]) {
553
553
err = nlmsg_parse (cb -> nlh , GENL_HDRLEN + nl80211_fam .hdrsize ,
554
- nl80211_fam . attrbuf , nl80211_fam . maxattr ,
555
- nl80211_policy );
554
+ genl_family_attrbuf ( & nl80211_fam ) ,
555
+ nl80211_fam . maxattr , nl80211_policy );
556
556
if (err )
557
557
goto out_unlock ;
558
558
559
- * wdev = __cfg80211_wdev_from_attrs (sock_net (skb -> sk ),
560
- nl80211_fam .attrbuf );
559
+ * wdev = __cfg80211_wdev_from_attrs (
560
+ sock_net (skb -> sk ),
561
+ genl_family_attrbuf (& nl80211_fam ));
561
562
if (IS_ERR (* wdev )) {
562
563
err = PTR_ERR (* wdev );
563
564
goto out_unlock ;
@@ -1881,7 +1882,7 @@ static int nl80211_dump_wiphy_parse(struct sk_buff *skb,
1881
1882
struct netlink_callback * cb ,
1882
1883
struct nl80211_dump_wiphy_state * state )
1883
1884
{
1884
- struct nlattr * * tb = nl80211_fam . attrbuf ;
1885
+ struct nlattr * * tb = genl_family_attrbuf ( & nl80211_fam ) ;
1885
1886
int ret = nlmsg_parse (cb -> nlh , GENL_HDRLEN + nl80211_fam .hdrsize ,
1886
1887
tb , nl80211_fam .maxattr , nl80211_policy );
1887
1888
/* ignore parse errors for backward compatibility */
@@ -7643,6 +7644,7 @@ static int nl80211_send_survey(struct sk_buff *msg, u32 portid, u32 seq,
7643
7644
7644
7645
static int nl80211_dump_survey (struct sk_buff * skb , struct netlink_callback * cb )
7645
7646
{
7647
+ struct nlattr * * attrbuf = genl_family_attrbuf (& nl80211_fam );
7646
7648
struct survey_info survey ;
7647
7649
struct cfg80211_registered_device * rdev ;
7648
7650
struct wireless_dev * wdev ;
@@ -7655,7 +7657,7 @@ static int nl80211_dump_survey(struct sk_buff *skb, struct netlink_callback *cb)
7655
7657
return res ;
7656
7658
7657
7659
/* prepare_wdev_dump parsed the attributes */
7658
- radio_stats = nl80211_fam . attrbuf [NL80211_ATTR_SURVEY_RADIO_STATS ];
7660
+ radio_stats = attrbuf [NL80211_ATTR_SURVEY_RADIO_STATS ];
7659
7661
7660
7662
if (!wdev -> netdev ) {
7661
7663
res = - EINVAL ;
@@ -8478,24 +8480,23 @@ static int nl80211_testmode_dump(struct sk_buff *skb,
8478
8480
*/
8479
8481
phy_idx = cb -> args [0 ] - 1 ;
8480
8482
} else {
8483
+ struct nlattr * * attrbuf = genl_family_attrbuf (& nl80211_fam );
8484
+
8481
8485
err = nlmsg_parse (cb -> nlh , GENL_HDRLEN + nl80211_fam .hdrsize ,
8482
- nl80211_fam .attrbuf , nl80211_fam .maxattr ,
8483
- nl80211_policy );
8486
+ attrbuf , nl80211_fam .maxattr , nl80211_policy );
8484
8487
if (err )
8485
8488
goto out_err ;
8486
8489
8487
- rdev = __cfg80211_rdev_from_attrs (sock_net (skb -> sk ),
8488
- nl80211_fam .attrbuf );
8490
+ rdev = __cfg80211_rdev_from_attrs (sock_net (skb -> sk ), attrbuf );
8489
8491
if (IS_ERR (rdev )) {
8490
8492
err = PTR_ERR (rdev );
8491
8493
goto out_err ;
8492
8494
}
8493
8495
phy_idx = rdev -> wiphy_idx ;
8494
8496
rdev = NULL ;
8495
8497
8496
- if (nl80211_fam .attrbuf [NL80211_ATTR_TESTDATA ])
8497
- cb -> args [1 ] =
8498
- (long )nl80211_fam .attrbuf [NL80211_ATTR_TESTDATA ];
8498
+ if (attrbuf [NL80211_ATTR_TESTDATA ])
8499
+ cb -> args [1 ] = (long )attrbuf [NL80211_ATTR_TESTDATA ];
8499
8500
}
8500
8501
8501
8502
if (cb -> args [1 ]) {
@@ -11277,6 +11278,7 @@ static int nl80211_prepare_vendor_dump(struct sk_buff *skb,
11277
11278
struct cfg80211_registered_device * * rdev ,
11278
11279
struct wireless_dev * * wdev )
11279
11280
{
11281
+ struct nlattr * * attrbuf = genl_family_attrbuf (& nl80211_fam );
11280
11282
u32 vid , subcmd ;
11281
11283
unsigned int i ;
11282
11284
int vcmd_idx = -1 ;
@@ -11312,31 +11314,28 @@ static int nl80211_prepare_vendor_dump(struct sk_buff *skb,
11312
11314
}
11313
11315
11314
11316
err = nlmsg_parse (cb -> nlh , GENL_HDRLEN + nl80211_fam .hdrsize ,
11315
- nl80211_fam .attrbuf , nl80211_fam .maxattr ,
11316
- nl80211_policy );
11317
+ attrbuf , nl80211_fam .maxattr , nl80211_policy );
11317
11318
if (err )
11318
11319
goto out_unlock ;
11319
11320
11320
- if (!nl80211_fam . attrbuf [NL80211_ATTR_VENDOR_ID ] ||
11321
- !nl80211_fam . attrbuf [NL80211_ATTR_VENDOR_SUBCMD ]) {
11321
+ if (!attrbuf [NL80211_ATTR_VENDOR_ID ] ||
11322
+ !attrbuf [NL80211_ATTR_VENDOR_SUBCMD ]) {
11322
11323
err = - EINVAL ;
11323
11324
goto out_unlock ;
11324
11325
}
11325
11326
11326
- * wdev = __cfg80211_wdev_from_attrs (sock_net (skb -> sk ),
11327
- nl80211_fam .attrbuf );
11327
+ * wdev = __cfg80211_wdev_from_attrs (sock_net (skb -> sk ), attrbuf );
11328
11328
if (IS_ERR (* wdev ))
11329
11329
* wdev = NULL ;
11330
11330
11331
- * rdev = __cfg80211_rdev_from_attrs (sock_net (skb -> sk ),
11332
- nl80211_fam .attrbuf );
11331
+ * rdev = __cfg80211_rdev_from_attrs (sock_net (skb -> sk ), attrbuf );
11333
11332
if (IS_ERR (* rdev )) {
11334
11333
err = PTR_ERR (* rdev );
11335
11334
goto out_unlock ;
11336
11335
}
11337
11336
11338
- vid = nla_get_u32 (nl80211_fam . attrbuf [NL80211_ATTR_VENDOR_ID ]);
11339
- subcmd = nla_get_u32 (nl80211_fam . attrbuf [NL80211_ATTR_VENDOR_SUBCMD ]);
11337
+ vid = nla_get_u32 (attrbuf [NL80211_ATTR_VENDOR_ID ]);
11338
+ subcmd = nla_get_u32 (attrbuf [NL80211_ATTR_VENDOR_SUBCMD ]);
11340
11339
11341
11340
for (i = 0 ; i < (* rdev )-> wiphy .n_vendor_commands ; i ++ ) {
11342
11341
const struct wiphy_vendor_command * vcmd ;
@@ -11360,9 +11359,9 @@ static int nl80211_prepare_vendor_dump(struct sk_buff *skb,
11360
11359
goto out_unlock ;
11361
11360
}
11362
11361
11363
- if (nl80211_fam . attrbuf [NL80211_ATTR_VENDOR_DATA ]) {
11364
- data = nla_data (nl80211_fam . attrbuf [NL80211_ATTR_VENDOR_DATA ]);
11365
- data_len = nla_len (nl80211_fam . attrbuf [NL80211_ATTR_VENDOR_DATA ]);
11362
+ if (attrbuf [NL80211_ATTR_VENDOR_DATA ]) {
11363
+ data = nla_data (attrbuf [NL80211_ATTR_VENDOR_DATA ]);
11364
+ data_len = nla_len (attrbuf [NL80211_ATTR_VENDOR_DATA ]);
11366
11365
}
11367
11366
11368
11367
/* 0 is the first index - add 1 to parse only once */
0 commit comments