tree: https://github.com/ammarfaizi2/linux-block wireless/wireless-next/mld-wip head: 10cf17b0508f56ee45e15ad2a612b64999264d4f commit: 43af0cd81d9314a71d9824514efd1f4c6fa3b437 [15/20] wifi: mac80211: implement link switching config: x86_64-randconfig-a003 compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/ammarfaizi2/linux-block/commit/43af0cd81d9314a71d9824514efd1f4c6fa3b437 git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block git fetch --no-tags ammarfaizi2-block wireless/wireless-next/mld-wip git checkout 43af0cd81d9314a71d9824514efd1f4c6fa3b437 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/net/wireless/st/cw1200/ net/mac80211/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot All errors (new ones prefixed by >>): >> net/mac80211/link.c:398:9: error: use of undeclared identifier 'BSS_CHANGED_EHT_PUNCTURING' BSS_CHANGED_EHT_PUNCTURING); ^ 1 error generated. vim +/BSS_CHANGED_EHT_PUNCTURING +398 net/mac80211/link.c 304 305 static int _ieee80211_set_active_links(struct ieee80211_sub_if_data *sdata, 306 u16 active_links) 307 { 308 struct ieee80211_bss_conf *link_confs[IEEE80211_MLD_MAX_NUM_LINKS]; 309 struct ieee80211_local *local = sdata->local; 310 u16 old_active = sdata->vif.active_links; 311 unsigned long rem = old_active & ~active_links; 312 unsigned long add = active_links & ~old_active; 313 struct sta_info *sta; 314 unsigned int link_id; 315 int ret, i; 316 317 if (sdata->vif.type != NL80211_IFTYPE_STATION) 318 return -EINVAL; 319 320 /* cannot activate links that don't exist */ 321 if (active_links & ~sdata->vif.valid_links) 322 return -EINVAL; 323 324 /* nothing to do */ 325 if (old_active == active_links) 326 return 0; 327 328 for (i = 0; i < IEEE80211_MLD_MAX_NUM_LINKS; i++) 329 link_confs[i] = sdata_dereference(sdata->vif.link_conf[i], 330 sdata); 331 332 if (add) { 333 sdata->vif.active_links |= active_links; 334 ret = drv_change_vif_links(local, sdata, 335 old_active, 336 sdata->vif.active_links, 337 link_confs); 338 if (ret) { 339 sdata->vif.active_links = old_active; 340 return ret; 341 } 342 } 343 344 for_each_set_bit(link_id, &rem, IEEE80211_MLD_MAX_NUM_LINKS) { 345 struct ieee80211_link_data *link; 346 347 link = sdata_dereference(sdata->link[link_id], sdata); 348 349 /* FIXME: kill TDLS connections on the link */ 350 351 ieee80211_link_release_channel(link); 352 } 353 354 list_for_each_entry(sta, &local->sta_list, list) { 355 if (sdata != sta->sdata) 356 continue; 357 ret = drv_change_sta_links(local, sdata, &sta->sta, 358 old_active, 359 old_active | active_links); 360 WARN_ON(ret); // FIXME // 361 } 362 363 ret = ieee80211_key_switch_links(sdata, rem, add); 364 WARN_ON(ret); // FIXME // 365 366 list_for_each_entry(sta, &local->sta_list, list) { 367 if (sdata != sta->sdata) 368 continue; 369 ret = drv_change_sta_links(local, sdata, &sta->sta, 370 old_active | active_links, 371 active_links); 372 WARN_ON(ret); // FIXME // 373 } 374 375 for_each_set_bit(link_id, &add, IEEE80211_MLD_MAX_NUM_LINKS) { 376 struct ieee80211_link_data *link; 377 378 link = sdata_dereference(sdata->link[link_id], sdata); 379 380 ret = ieee80211_link_use_channel(link, &link->conf->chandef, 381 IEEE80211_CHANCTX_SHARED); 382 WARN_ON(ret); // FIXME // 383 384 ieee80211_link_info_change_notify(sdata, link, 385 BSS_CHANGED_ERP_CTS_PROT | 386 BSS_CHANGED_ERP_PREAMBLE | 387 BSS_CHANGED_ERP_SLOT | 388 BSS_CHANGED_HT | 389 BSS_CHANGED_BASIC_RATES | 390 BSS_CHANGED_BSSID | 391 BSS_CHANGED_CQM | 392 BSS_CHANGED_QOS | 393 BSS_CHANGED_TXPOWER | 394 BSS_CHANGED_BANDWIDTH | 395 BSS_CHANGED_TWT | 396 BSS_CHANGED_HE_OBSS_PD | 397 BSS_CHANGED_HE_BSS_COLOR | > 398 BSS_CHANGED_EHT_PUNCTURING); 399 ieee80211_mgd_set_link_qos_params(link); 400 } 401 402 old_active = sdata->vif.active_links; 403 sdata->vif.active_links = active_links; 404 405 if (rem) { 406 ret = drv_change_vif_links(local, sdata, old_active, 407 active_links, link_confs); 408 WARN_ON(ret); // FIXME // 409 } 410 411 return 0; 412 } 413 -- 0-DAY CI Kernel Test Service https://01.org/lkp