drivers/net/wireless/intel/iwlwifi/mei/net.c:400: undefined reference to `ieee80211_hdrlen'

From: kernel test robot
Date: Sun Mar 13 2022 - 23:32:13 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 09688c0166e76ce2fb85e86b9d99be8b0084cdf9
commit: 875ad06015329314c594d3302ac2bbea37774543 iwlwifi: fix build error for IWLMEI
date: 11 days ago
config: i386-randconfig-a001-20220314 (https://download.01.org/0day-ci/archive/20220314/202203141142.6EHviCS0-lkp@xxxxxxxxx/config)
compiler: gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=875ad06015329314c594d3302ac2bbea37774543
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 875ad06015329314c594d3302ac2bbea37774543
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

ld: drivers/net/wireless/intel/iwlwifi/mei/net.o: in function `iwl_mei_tx_copy_to_csme':
>> drivers/net/wireless/intel/iwlwifi/mei/net.c:400: undefined reference to `ieee80211_hdrlen'


vim +400 drivers/net/wireless/intel/iwlwifi/mei/net.c

2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 364
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 365 #define DHCP_SERVER_PORT 67
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 366 #define DHCP_CLIENT_PORT 68
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 367 void iwl_mei_tx_copy_to_csme(struct sk_buff *origskb, unsigned int ivlen)
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 368 {
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 369 struct ieee80211_hdr *hdr;
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 370 struct sk_buff *skb;
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 371 struct ethhdr ethhdr;
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 372 struct ethhdr *eth;
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 373
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 374 /* Catch DHCP packets */
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 375 if (origskb->protocol != htons(ETH_P_IP) ||
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 376 ip_hdr(origskb)->protocol != IPPROTO_UDP ||
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 377 udp_hdr(origskb)->source != htons(DHCP_CLIENT_PORT) ||
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 378 udp_hdr(origskb)->dest != htons(DHCP_SERVER_PORT))
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 379 return;
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 380
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 381 /*
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 382 * We could be a bit less aggressive here and not copy everything, but
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 383 * this is very rare anyway, do don't bother much.
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 384 */
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 385 skb = skb_copy(origskb, GFP_ATOMIC);
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 386 if (!skb)
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 387 return;
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 388
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 389 skb->protocol = origskb->protocol;
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 390
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 391 hdr = (void *)skb->data;
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 392
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 393 memcpy(ethhdr.h_dest, ieee80211_get_DA(hdr), ETH_ALEN);
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 394 memcpy(ethhdr.h_source, ieee80211_get_SA(hdr), ETH_ALEN);
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 395
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 396 /*
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 397 * Remove the ieee80211 header + IV + SNAP but leave the ethertype
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 398 * We still have enough headroom for the sap header.
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 399 */
2da4366f9e2c44 Emmanuel Grumbach 2021-11-12 @400 pskb_pull(skb, ieee80211_hdrlen(hdr->frame_control) + ivlen + 6);

:::::: The code at line 400 was first introduced by commit
:::::: 2da4366f9e2c44afedec4acad65a99a3c7da1a35 iwlwifi: mei: add the driver to allow cooperation with CSME

:::::: TO: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
:::::: CC: Kalle Valo <kvalo@xxxxxxxxxxxxxx>

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx