tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 07f7e57c63aaa2afb4ea31edef05e08699a63a00 commit: 930be4e76f262ede9927fb7d1ca525736cdc3669 [8253/11103] iwlwifi: add support for SnJ with Jf devices config: i386-randconfig-r026-20210212 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=930be4e76f262ede9927fb7d1ca525736cdc3669 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 930be4e76f262ede9927fb7d1ca525736cdc3669 # save the attached .config to linux build tree make W=1 ARCH=i386 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/pcie/drv.o: in function `iwl_pci_probe': >> drivers/net/wireless/intel/iwlwifi/pcie/drv.c:1055: undefined reference to `iwl_so_trans_cfg' vim +1055 drivers/net/wireless/intel/iwlwifi/pcie/drv.c 990 991 static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 992 { 993 const struct iwl_cfg_trans_params *trans = 994 (struct iwl_cfg_trans_params *)(ent->driver_data); 995 const struct iwl_cfg *cfg_7265d __maybe_unused = NULL; 996 struct iwl_trans *iwl_trans; 997 struct iwl_trans_pcie *trans_pcie; 998 int i, ret; 999 /* 1000 * This is needed for backwards compatibility with the old 1001 * tables, so we don't need to change all the config structs 1002 * at the same time. The cfg is used to compare with the old 1003 * full cfg structs. 1004 */ 1005 const struct iwl_cfg *cfg = (struct iwl_cfg *)(ent->driver_data); 1006 1007 /* make sure trans is the first element in iwl_cfg */ 1008 BUILD_BUG_ON(offsetof(struct iwl_cfg, trans)); 1009 1010 iwl_trans = iwl_trans_pcie_alloc(pdev, ent, trans); 1011 if (IS_ERR(iwl_trans)) 1012 return PTR_ERR(iwl_trans); 1013 1014 trans_pcie = IWL_TRANS_GET_PCIE_TRANS(iwl_trans); 1015 1016 iwl_trans->hw_rf_id = iwl_read32(iwl_trans, CSR_HW_RF_ID); 1017 1018 for (i = 0; i < ARRAY_SIZE(iwl_dev_info_table); i++) { 1019 const struct iwl_dev_info *dev_info = &iwl_dev_info_table[i]; 1020 if ((dev_info->device == (u16)IWL_CFG_ANY || 1021 dev_info->device == pdev->device) && 1022 (dev_info->subdevice == (u16)IWL_CFG_ANY || 1023 dev_info->subdevice == pdev->subsystem_device) && 1024 (dev_info->mac_type == (u16)IWL_CFG_ANY || 1025 dev_info->mac_type == 1026 CSR_HW_REV_TYPE(iwl_trans->hw_rev)) && 1027 (dev_info->mac_step == (u8)IWL_CFG_ANY || 1028 dev_info->mac_step == 1029 CSR_HW_REV_STEP(iwl_trans->hw_rev)) && 1030 (dev_info->rf_type == (u16)IWL_CFG_ANY || 1031 dev_info->rf_type == 1032 CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id)) && 1033 (dev_info->rf_id == (u8)IWL_CFG_ANY || 1034 dev_info->rf_id == 1035 IWL_SUBDEVICE_RF_ID(pdev->subsystem_device)) && 1036 (dev_info->no_160 == (u8)IWL_CFG_ANY || 1037 dev_info->no_160 == 1038 IWL_SUBDEVICE_NO_160(pdev->subsystem_device)) && 1039 (dev_info->cores == (u8)IWL_CFG_ANY || 1040 dev_info->cores == 1041 IWL_SUBDEVICE_CORES(pdev->subsystem_device))) { 1042 iwl_trans->cfg = dev_info->cfg; 1043 iwl_trans->name = dev_info->name; 1044 } 1045 } 1046 1047 /* 1048 * Workaround for problematic SnJ device: sometimes when 1049 * certain RF modules are connected to SnJ, the device ID 1050 * changes to QnJ's ID. So we are using QnJ's trans_cfg until 1051 * here. But if we detect that the MAC type is actually SnJ, 1052 * we should switch to it here to avoid problems later. 1053 */ 1054 if (CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_SNJ) > 1055 iwl_trans->trans_cfg = &iwl_so_trans_cfg; 1056 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip