Search Linux Wireless

Re: [PATCH 4/4 v2 iface_work] Function renaming

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

[auto build test ERROR on mac80211/master]
[also build test ERROR on v4.7-rc7]
[cannot apply to mac80211-next/master next-20160715]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Alex-Briskin/New-function-ieee80211_is_skb_handled_by_pkt_type/20160715-195540
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git master
config: alpha-defconfig (attached as .config)
compiler: alpha-linux-gnu-gcc (Debian 5.3.1-8) 5.3.1 20160205
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=alpha 

All error/warnings (new ones prefixed by >>):

>> net/mac80211/iface.c:1249:11: warning: 'struct ieee80211_sub_if_datai' declared inside parameter list
       struct ieee80211_sub_if_datai *sdata)
              ^
>> net/mac80211/iface.c:1249:11: warning: its scope is only this definition or declaration, which is probably not what you want
   net/mac80211/iface.c: In function 'mac80211_is_skb_handled_by_frame_control':
>> net/mac80211/iface.c:1251:39: error: dereferencing pointer to incomplete type 'struct ieee80211_sub_if_datai'
     struct ieee80211_local *local = sdata->local;
                                          ^
>> net/mac80211/iface.c:1260:26: error: passing argument 1 of 'sta_info_get_bss' from incompatible pointer type [-Werror=incompatible-pointer-types]
      sta = sta_info_get_bss(sdata, mgmt->sa);
                             ^
   In file included from net/mac80211/ieee80211_i.h:34:0,
                    from net/mac80211/iface.c:21:
   net/mac80211/sta_info.h:644:18: note: expected 'struct ieee80211_sub_if_data *' but argument is of type 'struct ieee80211_sub_if_datai *'
    struct sta_info *sta_info_get_bss(struct ieee80211_sub_if_data *sdata,
                     ^
>> net/mac80211/iface.c:1272:29: error: passing argument 1 of 'ieee80211_process_delba' from incompatible pointer type [-Werror=incompatible-pointer-types]
        ieee80211_process_delba(sdata, sta, mgmt, len);
                                ^
   In file included from net/mac80211/iface.c:21:0:
   net/mac80211/ieee80211_i.h:1700:6: note: expected 'struct ieee80211_sub_if_data *' but argument is of type 'struct ieee80211_sub_if_datai *'
    void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata,
         ^
>> net/mac80211/iface.c:1284:32: error: passing argument 1 of 'ieee80211_process_mu_groups' from incompatible pointer type [-Werror=incompatible-pointer-types]
       ieee80211_process_mu_groups(sdata, mgmt);
                                   ^
   In file included from net/mac80211/iface.c:21:0:
   net/mac80211/ieee80211_i.h:1737:6: note: expected 'struct ieee80211_sub_if_data *' but argument is of type 'struct ieee80211_sub_if_datai *'
    void ieee80211_process_mu_groups(struct ieee80211_sub_if_data *sdata,
         ^
   net/mac80211/iface.c:1309:26: error: passing argument 1 of 'sta_info_get_bss' from incompatible pointer type [-Werror=incompatible-pointer-types]
      sta = sta_info_get_bss(sdata, mgmt->sa);
                             ^
   In file included from net/mac80211/ieee80211_i.h:34:0,
                    from net/mac80211/iface.c:21:
   net/mac80211/sta_info.h:644:18: note: expected 'struct ieee80211_sub_if_data *' but argument is of type 'struct ieee80211_sub_if_datai *'
    struct sta_info *sta_info_get_bss(struct ieee80211_sub_if_data *sdata,
                     ^
   net/mac80211/iface.c: In function 'ieee80211_iface_work':
>> net/mac80211/iface.c:1366:54: error: passing argument 2 of 'mac80211_is_skb_handled_by_frame_control' from incompatible pointer type [-Werror=incompatible-pointer-types]
          !mac80211_is_skb_handled_by_frame_control(skb, sdata)) {
                                                         ^
   net/mac80211/iface.c:1248:13: note: expected 'struct ieee80211_sub_if_datai *' but argument is of type 'struct ieee80211_sub_if_data *'
    static bool mac80211_is_skb_handled_by_frame_control(struct sk_buff *skb,
                ^
   cc1: some warnings being treated as errors

vim +1251 net/mac80211/iface.c

4ea9593c0 Alex Briskin  2016-07-15  1243  	}
4ea9593c0 Alex Briskin  2016-07-15  1244  	/*will return true if pkt_type found and handled */
4ea9593c0 Alex Briskin  2016-07-15  1245  	return true;
4ea9593c0 Alex Briskin  2016-07-15  1246  }
4ea9593c0 Alex Briskin  2016-07-15  1247  
9ea4267a9 Alex Briskin  2016-07-15  1248  static bool mac80211_is_skb_handled_by_frame_control(struct sk_buff *skb,
9ea4267a9 Alex Briskin  2016-07-15 @1249  			struct ieee80211_sub_if_datai *sdata)
4ea9593c0 Alex Briskin  2016-07-15  1250  {
4ea9593c0 Alex Briskin  2016-07-15 @1251  	struct ieee80211_local *local = sdata->local;
4ea9593c0 Alex Briskin  2016-07-15  1252  	struct sta_info *sta;
4ea9593c0 Alex Briskin  2016-07-15  1253  	struct ieee80211_mgmt *mgmt = (void *)skb->data;
4ea9593c0 Alex Briskin  2016-07-15  1254  
f10059ca6 Alex Briskin  2016-07-15  1255  	if (ieee80211_is_action(mgmt->frame_control) &&
bed7ee6e4 Johannes Berg 2010-06-10  1256  	    mgmt->u.action.category == WLAN_CATEGORY_BACK) {
bed7ee6e4 Johannes Berg 2010-06-10  1257  		int len = skb->len;
bed7ee6e4 Johannes Berg 2010-06-10  1258  
a93e36443 Johannes Berg 2010-06-10  1259  		mutex_lock(&local->sta_mtx);
875ae5f68 Felix Fietkau 2010-07-17 @1260  		sta = sta_info_get_bss(sdata, mgmt->sa);
bed7ee6e4 Johannes Berg 2010-06-10  1261  		if (sta) {
bed7ee6e4 Johannes Berg 2010-06-10  1262  			switch (mgmt->u.action.u.addba_req.action_code) {
bed7ee6e4 Johannes Berg 2010-06-10  1263  			case WLAN_ACTION_ADDBA_REQ:
f10059ca6 Alex Briskin  2016-07-15  1264  				ieee80211_process_addba_request(local, sta,
f10059ca6 Alex Briskin  2016-07-15  1265  								mgmt, len);
bed7ee6e4 Johannes Berg 2010-06-10  1266  				break;
bed7ee6e4 Johannes Berg 2010-06-10  1267  			case WLAN_ACTION_ADDBA_RESP:
bed7ee6e4 Johannes Berg 2010-06-10  1268  				ieee80211_process_addba_resp(local, sta,
bed7ee6e4 Johannes Berg 2010-06-10  1269  							     mgmt, len);
bed7ee6e4 Johannes Berg 2010-06-10  1270  				break;
bed7ee6e4 Johannes Berg 2010-06-10  1271  			case WLAN_ACTION_DELBA:
f10059ca6 Alex Briskin  2016-07-15 @1272  				ieee80211_process_delba(sdata, sta, mgmt, len);
bed7ee6e4 Johannes Berg 2010-06-10  1273  				break;
bed7ee6e4 Johannes Berg 2010-06-10  1274  			default:
bed7ee6e4 Johannes Berg 2010-06-10  1275  				WARN_ON(1);
bed7ee6e4 Johannes Berg 2010-06-10  1276  				break;
bed7ee6e4 Johannes Berg 2010-06-10  1277  			}
bed7ee6e4 Johannes Berg 2010-06-10  1278  		}
a93e36443 Johannes Berg 2010-06-10  1279  		mutex_unlock(&local->sta_mtx);
23a1f8d44 Sara Sharon   2015-12-08  1280  	} else if (ieee80211_is_action(mgmt->frame_control) &&
23a1f8d44 Sara Sharon   2015-12-08  1281  		   mgmt->u.action.category == WLAN_CATEGORY_VHT) {
23a1f8d44 Sara Sharon   2015-12-08  1282  		switch (mgmt->u.action.u.vht_group_notif.action_code) {
23a1f8d44 Sara Sharon   2015-12-08  1283  		case WLAN_VHT_ACTION_GROUPID_MGMT:
23a1f8d44 Sara Sharon   2015-12-08 @1284  			ieee80211_process_mu_groups(sdata, mgmt);
23a1f8d44 Sara Sharon   2015-12-08  1285  			break;
23a1f8d44 Sara Sharon   2015-12-08  1286  		default:
23a1f8d44 Sara Sharon   2015-12-08  1287  			WARN_ON(1);
23a1f8d44 Sara Sharon   2015-12-08  1288  			break;
23a1f8d44 Sara Sharon   2015-12-08  1289  		}
344eec67c Johannes Berg 2010-06-10  1290  	} else if (ieee80211_is_data_qos(mgmt->frame_control)) {
344eec67c Johannes Berg 2010-06-10  1291  		struct ieee80211_hdr *hdr = (void *)mgmt;
344eec67c Johannes Berg 2010-06-10  1292  		/*
344eec67c Johannes Berg 2010-06-10  1293  		 * So the frame isn't mgmt, but frame_control
344eec67c Johannes Berg 2010-06-10  1294  		 * is at the right place anyway, of course, so
344eec67c Johannes Berg 2010-06-10  1295  		 * the if statement is correct.
344eec67c Johannes Berg 2010-06-10  1296  		 *
344eec67c Johannes Berg 2010-06-10  1297  		 * Warn if we have other data frame types here,
344eec67c Johannes Berg 2010-06-10  1298  		 * they must not get here.
344eec67c Johannes Berg 2010-06-10  1299  		 */
344eec67c Johannes Berg 2010-06-10  1300  		WARN_ON(hdr->frame_control &
344eec67c Johannes Berg 2010-06-10  1301  			cpu_to_le16(IEEE80211_STYPE_NULLFUNC));
f10059ca6 Alex Briskin  2016-07-15  1302  		WARN_ON(!(hdr->seq_ctrl & cpu_to_le16(IEEE80211_SCTL_FRAG)));
344eec67c Johannes Berg 2010-06-10  1303  		/*
344eec67c Johannes Berg 2010-06-10  1304  		 * This was a fragment of a frame, received while
344eec67c Johannes Berg 2010-06-10  1305  		 * a block-ack session was active. That cannot be
344eec67c Johannes Berg 2010-06-10  1306  		 * right, so terminate the session.
344eec67c Johannes Berg 2010-06-10  1307  		 */
a93e36443 Johannes Berg 2010-06-10  1308  		mutex_lock(&local->sta_mtx);
875ae5f68 Felix Fietkau 2010-07-17 @1309  		sta = sta_info_get_bss(sdata, mgmt->sa);
344eec67c Johannes Berg 2010-06-10  1310  		if (sta) {
344eec67c Johannes Berg 2010-06-10  1311  			u16 tid = *ieee80211_get_qos_ctl(hdr) &
344eec67c Johannes Berg 2010-06-10  1312  			    IEEE80211_QOS_CTL_TID_MASK;
344eec67c Johannes Berg 2010-06-10  1313  
f10059ca6 Alex Briskin  2016-07-15  1314  			__ieee80211_stop_rx_ba_session(sta, tid,
f10059ca6 Alex Briskin  2016-07-15  1315  						       WLAN_BACK_RECIPIENT,
53f73c09d Johannes Berg 2010-10-05  1316  						       WLAN_REASON_QSTA_REQUIRE_SETUP,
53f73c09d Johannes Berg 2010-10-05  1317  						       true);
344eec67c Johannes Berg 2010-06-10  1318  		}
a93e36443 Johannes Berg 2010-06-10  1319  		mutex_unlock(&local->sta_mtx);
f10059ca6 Alex Briskin  2016-07-15  1320  	} else {
f10059ca6 Alex Briskin  2016-07-15  1321  		return false;
f10059ca6 Alex Briskin  2016-07-15  1322  	}
f10059ca6 Alex Briskin  2016-07-15  1323  	return true;
f10059ca6 Alex Briskin  2016-07-15  1324  }
f10059ca6 Alex Briskin  2016-07-15  1325  
9ea4267a9 Alex Briskin  2016-07-15  1326  static void mac80211_skb_handle_by_vif_type(struct sk_buff *skb,
698f121a4 Alex Briskin  2016-07-15  1327  					    struct ieee80211_sub_if_data *sdata)
698f121a4 Alex Briskin  2016-07-15  1328  {
698f121a4 Alex Briskin  2016-07-15  1329  	switch (sdata->vif.type) {
698f121a4 Alex Briskin  2016-07-15  1330  	case NL80211_IFTYPE_STATION:
698f121a4 Alex Briskin  2016-07-15  1331  		ieee80211_sta_rx_queued_mgmt(sdata, skb);
698f121a4 Alex Briskin  2016-07-15  1332  		break;
698f121a4 Alex Briskin  2016-07-15  1333  	case NL80211_IFTYPE_ADHOC:
698f121a4 Alex Briskin  2016-07-15  1334  		ieee80211_ibss_rx_queued_mgmt(sdata, skb);
698f121a4 Alex Briskin  2016-07-15  1335  		break;
698f121a4 Alex Briskin  2016-07-15  1336  	case NL80211_IFTYPE_MESH_POINT:
698f121a4 Alex Briskin  2016-07-15  1337  		if (!ieee80211_vif_is_mesh(&sdata->vif))
698f121a4 Alex Briskin  2016-07-15  1338  			break;
698f121a4 Alex Briskin  2016-07-15  1339  		ieee80211_mesh_rx_queued_mgmt(sdata, skb);
698f121a4 Alex Briskin  2016-07-15  1340  		break;
698f121a4 Alex Briskin  2016-07-15  1341  	default:
698f121a4 Alex Briskin  2016-07-15  1342  		WARN(1, "frame for unexpected interface type");
698f121a4 Alex Briskin  2016-07-15  1343  		break;
698f121a4 Alex Briskin  2016-07-15  1344  	}
698f121a4 Alex Briskin  2016-07-15  1345  }
698f121a4 Alex Briskin  2016-07-15  1346  
f10059ca6 Alex Briskin  2016-07-15  1347  static void ieee80211_iface_work(struct work_struct *work)
f10059ca6 Alex Briskin  2016-07-15  1348  {
f10059ca6 Alex Briskin  2016-07-15  1349  	struct ieee80211_sub_if_data *sdata =
f10059ca6 Alex Briskin  2016-07-15  1350  		container_of(work, struct ieee80211_sub_if_data, work);
f10059ca6 Alex Briskin  2016-07-15  1351  	struct ieee80211_local *local = sdata->local;
f10059ca6 Alex Briskin  2016-07-15  1352  	struct sk_buff *skb;
f10059ca6 Alex Briskin  2016-07-15  1353  
f10059ca6 Alex Briskin  2016-07-15  1354  	if (!ieee80211_sdata_running(sdata))
f10059ca6 Alex Briskin  2016-07-15  1355  		return;
f10059ca6 Alex Briskin  2016-07-15  1356  
f10059ca6 Alex Briskin  2016-07-15  1357  	if (test_bit(SCAN_SW_SCANNING, &local->scanning))
f10059ca6 Alex Briskin  2016-07-15  1358  		return;
f10059ca6 Alex Briskin  2016-07-15  1359  
f10059ca6 Alex Briskin  2016-07-15  1360  	if (!ieee80211_can_run_worker(local))
f10059ca6 Alex Briskin  2016-07-15  1361  		return;
f10059ca6 Alex Briskin  2016-07-15  1362  
f10059ca6 Alex Briskin  2016-07-15  1363  	/* first process frames */
f10059ca6 Alex Briskin  2016-07-15  1364  	while ((skb = skb_dequeue(&sdata->skb_queue))) {
9ea4267a9 Alex Briskin  2016-07-15  1365  		if (!mac80211_is_skb_handled_by_pkt_type(skb, sdata) &&
9ea4267a9 Alex Briskin  2016-07-15 @1366  		    !mac80211_is_skb_handled_by_frame_control(skb, sdata)) {
9ea4267a9 Alex Briskin  2016-07-15  1367  			mac80211_skb_handle_by_vif_type(skb, sdata);
1fa57d017 Johannes Berg 2010-06-10  1368  		}
36b3a628a Johannes Berg 2010-06-10  1369  

:::::: The code at line 1251 was first introduced by commit
:::::: 4ea9593c0fc996ef6869e82aefc22a58ee6186f7 New function ieee80211_is_skb_handled_by_pkt_type

:::::: TO: Alex Briskin <br.shurik@xxxxxxxxx>
:::::: CC: 0day robot <fengguang.wu@xxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: Binary data


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux