Hi Luca, Thank you for the patch! Yet something to improve: [auto build test ERROR on kvalo-wireless-drivers-next/master] [also build test ERROR on kvalo-wireless-drivers/master v5.15 next-20211110] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Luca-Coelho/iwlwifi-mvm-retry-init-flow-if-failed/20211110-013343 base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master config: powerpc-allmodconfig (attached as .config) compiler: powerpc-linux-gcc (GCC) 11.2.0 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/0day-ci/linux/commit/71e548532c8247fa57b9e952895bba06002eddb0 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Luca-Coelho/iwlwifi-mvm-retry-init-flow-if-failed/20211110-013343 git checkout 71e548532c8247fa57b9e952895bba06002eddb0 # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/net/wireless/intel/iwlwifi/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): drivers/net/wireless/intel/iwlwifi/iwl-drv.c: In function '_iwl_op_mode_start': drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1342:13: error: invalid storage class for function '_iwl_op_mode_stop' 1342 | static void _iwl_op_mode_stop(struct iwl_drv *drv) | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1342:1: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1342 | static void _iwl_op_mode_stop(struct iwl_drv *drv) | ^~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1362:13: error: invalid storage class for function 'iwl_req_fw_callback' 1362 | static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) | ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/linkage.h:7, from include/linux/kernel.h:8, from include/linux/list.h:9, from include/linux/swait.h:5, from include/linux/completion.h:12, from drivers/net/wireless/intel/iwlwifi/iwl-drv.c:7: >> drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1754:19: error: extern declaration of 'iwlwifi_mod_params' follows declaration with no linkage 1754 | IWL_EXPORT_SYMBOL(iwlwifi_mod_params); | ^~~~~~~~~~~~~~~~~~ include/linux/export.h:98:28: note: in definition of macro '___EXPORT_SYMBOL' 98 | extern typeof(sym) sym; \ | ^~~ include/linux/export.h:160:41: note: in expansion of macro '__EXPORT_SYMBOL' 160 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "") | ^~~~~~~~~~~~~~~ include/linux/export.h:164:41: note: in expansion of macro '_EXPORT_SYMBOL' 164 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl") | ^~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.h:87:33: note: in expansion of macro 'EXPORT_SYMBOL_GPL' 87 | #define IWL_EXPORT_SYMBOL(sym) EXPORT_SYMBOL_GPL(sym) | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1754:1: note: in expansion of macro 'IWL_EXPORT_SYMBOL' 1754 | IWL_EXPORT_SYMBOL(iwlwifi_mod_params); | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1746:23: note: previous definition of 'iwlwifi_mod_params' with type 'struct iwl_mod_params' 1746 | struct iwl_mod_params iwlwifi_mod_params = { | ^~~~~~~~~~~~~~~~~~ In file included from include/linux/linkage.h:7, from include/linux/kernel.h:8, from include/linux/list.h:9, from include/linux/swait.h:5, from include/linux/completion.h:12, from drivers/net/wireless/intel/iwlwifi/iwl-drv.c:7: >> include/linux/export.h:67:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 67 | static const struct kernel_symbol __ksymtab_##sym \ | ^~~~~~ include/linux/export.h:108:9: note: in expansion of macro '__KSYMTAB_ENTRY' 108 | __KSYMTAB_ENTRY(sym, sec) | ^~~~~~~~~~~~~~~ include/linux/export.h:152:41: note: in expansion of macro '___EXPORT_SYMBOL' 152 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns) | ^~~~~~~~~~~~~~~~ include/linux/export.h:160:41: note: in expansion of macro '__EXPORT_SYMBOL' 160 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "") | ^~~~~~~~~~~~~~~ include/linux/export.h:164:41: note: in expansion of macro '_EXPORT_SYMBOL' 164 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl") | ^~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.h:87:33: note: in expansion of macro 'EXPORT_SYMBOL_GPL' 87 | #define IWL_EXPORT_SYMBOL(sym) EXPORT_SYMBOL_GPL(sym) | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1754:1: note: in expansion of macro 'IWL_EXPORT_SYMBOL' 1754 | IWL_EXPORT_SYMBOL(iwlwifi_mod_params); | ^~~~~~~~~~~~~~~~~ >> drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1778:19: error: non-static declaration of 'iwl_opmode_register' follows static declaration 1778 | IWL_EXPORT_SYMBOL(iwl_opmode_register); | ^~~~~~~~~~~~~~~~~~~ include/linux/export.h:98:28: note: in definition of macro '___EXPORT_SYMBOL' 98 | extern typeof(sym) sym; \ | ^~~ include/linux/export.h:160:41: note: in expansion of macro '__EXPORT_SYMBOL' 160 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "") | ^~~~~~~~~~~~~~~ include/linux/export.h:164:41: note: in expansion of macro '_EXPORT_SYMBOL' 164 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl") | ^~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.h:87:33: note: in expansion of macro 'EXPORT_SYMBOL_GPL' 87 | #define IWL_EXPORT_SYMBOL(sym) EXPORT_SYMBOL_GPL(sym) | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1778:1: note: in expansion of macro 'IWL_EXPORT_SYMBOL' 1778 | IWL_EXPORT_SYMBOL(iwl_opmode_register); | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1756:5: note: previous definition of 'iwl_opmode_register' with type 'int(const char *, const struct iwl_op_mode_ops *)' 1756 | int iwl_opmode_register(const char *name, const struct iwl_op_mode_ops *ops) | ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/linkage.h:7, from include/linux/kernel.h:8, from include/linux/list.h:9, from include/linux/swait.h:5, from include/linux/completion.h:12, from drivers/net/wireless/intel/iwlwifi/iwl-drv.c:7: >> include/linux/export.h:67:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 67 | static const struct kernel_symbol __ksymtab_##sym \ | ^~~~~~ include/linux/export.h:108:9: note: in expansion of macro '__KSYMTAB_ENTRY' 108 | __KSYMTAB_ENTRY(sym, sec) | ^~~~~~~~~~~~~~~ include/linux/export.h:152:41: note: in expansion of macro '___EXPORT_SYMBOL' 152 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns) | ^~~~~~~~~~~~~~~~ include/linux/export.h:160:41: note: in expansion of macro '__EXPORT_SYMBOL' 160 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "") | ^~~~~~~~~~~~~~~ include/linux/export.h:164:41: note: in expansion of macro '_EXPORT_SYMBOL' 164 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl") | ^~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.h:87:33: note: in expansion of macro 'EXPORT_SYMBOL_GPL' 87 | #define IWL_EXPORT_SYMBOL(sym) EXPORT_SYMBOL_GPL(sym) | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1778:1: note: in expansion of macro 'IWL_EXPORT_SYMBOL' 1778 | IWL_EXPORT_SYMBOL(iwl_opmode_register); | ^~~~~~~~~~~~~~~~~ >> drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1800:19: error: non-static declaration of 'iwl_opmode_deregister' follows static declaration 1800 | IWL_EXPORT_SYMBOL(iwl_opmode_deregister); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/export.h:98:28: note: in definition of macro '___EXPORT_SYMBOL' 98 | extern typeof(sym) sym; \ | ^~~ include/linux/export.h:160:41: note: in expansion of macro '__EXPORT_SYMBOL' 160 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "") | ^~~~~~~~~~~~~~~ include/linux/export.h:164:41: note: in expansion of macro '_EXPORT_SYMBOL' 164 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl") | ^~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.h:87:33: note: in expansion of macro 'EXPORT_SYMBOL_GPL' 87 | #define IWL_EXPORT_SYMBOL(sym) EXPORT_SYMBOL_GPL(sym) | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1800:1: note: in expansion of macro 'IWL_EXPORT_SYMBOL' 1800 | IWL_EXPORT_SYMBOL(iwl_opmode_deregister); | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1780:6: note: previous definition of 'iwl_opmode_deregister' with type 'void(const char *)' 1780 | void iwl_opmode_deregister(const char *name) | ^~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/linkage.h:7, from include/linux/kernel.h:8, from include/linux/list.h:9, from include/linux/swait.h:5, from include/linux/completion.h:12, from drivers/net/wireless/intel/iwlwifi/iwl-drv.c:7: >> include/linux/export.h:67:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 67 | static const struct kernel_symbol __ksymtab_##sym \ | ^~~~~~ include/linux/export.h:108:9: note: in expansion of macro '__KSYMTAB_ENTRY' 108 | __KSYMTAB_ENTRY(sym, sec) | ^~~~~~~~~~~~~~~ include/linux/export.h:152:41: note: in expansion of macro '___EXPORT_SYMBOL' 152 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns) | ^~~~~~~~~~~~~~~~ include/linux/export.h:160:41: note: in expansion of macro '__EXPORT_SYMBOL' 160 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "") | ^~~~~~~~~~~~~~~ include/linux/export.h:164:41: note: in expansion of macro '_EXPORT_SYMBOL' 164 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl") | ^~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.h:87:33: note: in expansion of macro 'EXPORT_SYMBOL_GPL' 87 | #define IWL_EXPORT_SYMBOL(sym) EXPORT_SYMBOL_GPL(sym) | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1800:1: note: in expansion of macro 'IWL_EXPORT_SYMBOL' 1800 | IWL_EXPORT_SYMBOL(iwl_opmode_deregister); | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1802:19: error: invalid storage class for function 'iwl_drv_init' 1802 | static int __init iwl_drv_init(void) | ^~~~~~~~~~~~ In file included from drivers/net/wireless/intel/iwlwifi/iwl-drv.c:10: >> include/linux/module.h:131:49: error: invalid storage class for function '__inittest' 131 | static inline initcall_t __maybe_unused __inittest(void) \ | ^~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1828:1: note: in expansion of macro 'module_init' 1828 | module_init(iwl_drv_init); | ^~~~~~~~~~~ >> drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1828:1: error: 'alias' attribute ignored [-Werror=attributes] drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1830:20: error: invalid storage class for function 'iwl_drv_exit' 1830 | static void __exit iwl_drv_exit(void) | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1830:1: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1830 | static void __exit iwl_drv_exit(void) | ^~~~~~ In file included from drivers/net/wireless/intel/iwlwifi/iwl-drv.c:10: >> include/linux/module.h:139:49: error: invalid storage class for function '__exittest' 139 | static inline exitcall_t __maybe_unused __exittest(void) \ | ^~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1838:1: note: in expansion of macro 'module_exit' 1838 | module_exit(iwl_drv_exit); | ^~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1838:1: error: 'alias' attribute ignored [-Werror=attributes] In file included from include/linux/module.h:22, from drivers/net/wireless/intel/iwlwifi/iwl-drv.c:10: include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_debug' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:436:35: note: in expansion of macro '__param_check' 436 | #define param_check_uint(name, p) __param_check(name, p, unsigned int) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_uint' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1841:1: note: in expansion of macro 'module_param_named' 1841 | module_param_named(debug, iwlwifi_mod_params.debug_level, uint, 0644); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:409:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~ include/linux/moduleparam.h:436:35: note: in expansion of macro '__param_check' 436 | #define param_check_uint(name, p) __param_check(name, p, unsigned int) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_uint' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1841:1: note: in expansion of macro 'module_param_named' 1841 | module_param_named(debug, iwlwifi_mod_params.debug_level, uint, 0644); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:289:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 289 | static const char __param_str_##name[] = prefix #name; \ | ^~~~~~ include/linux/moduleparam.h:176:9: note: in expansion of macro '__module_param_call' 176 | __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0) | ^~~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:9: note: in expansion of macro 'module_param_cb' 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1841:1: note: in expansion of macro 'module_param_named' 1841 | module_param_named(debug, iwlwifi_mod_params.debug_level, uint, 0644); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_swcrypto' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:429:34: note: in expansion of macro '__param_check' 429 | #define param_check_int(name, p) __param_check(name, p, int) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_int' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1845:1: note: in expansion of macro 'module_param_named' 1845 | module_param_named(swcrypto, iwlwifi_mod_params.swcrypto, int, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:289:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 289 | static const char __param_str_##name[] = prefix #name; \ | ^~~~~~ include/linux/moduleparam.h:176:9: note: in expansion of macro '__module_param_call' 176 | __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0) | ^~~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:9: note: in expansion of macro 'module_param_cb' 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1845:1: note: in expansion of macro 'module_param_named' 1845 | module_param_named(swcrypto, iwlwifi_mod_params.swcrypto, int, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_11n_disable' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:436:35: note: in expansion of macro '__param_check' 436 | #define param_check_uint(name, p) __param_check(name, p, unsigned int) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_uint' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1847:1: note: in expansion of macro 'module_param_named' 1847 | module_param_named(11n_disable, iwlwifi_mod_params.disable_11n, uint, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:289:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 289 | static const char __param_str_##name[] = prefix #name; \ | ^~~~~~ include/linux/moduleparam.h:176:9: note: in expansion of macro '__module_param_call' 176 | __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0) | ^~~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:9: note: in expansion of macro 'module_param_cb' 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1847:1: note: in expansion of macro 'module_param_named' 1847 | module_param_named(11n_disable, iwlwifi_mod_params.disable_11n, uint, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_amsdu_size' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:429:34: note: in expansion of macro '__param_check' 429 | #define param_check_int(name, p) __param_check(name, p, int) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_int' 150 | param_check_##type(name, &(value)); \ vim +/iwlwifi_mod_params +1754 drivers/net/wireless/intel/iwlwifi/iwl-drv.c 65de7e84fdc71a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-04-17 1743 65de7e84fdc71a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-04-17 1744 65de7e84fdc71a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-04-17 1745 /* shared module parameters */ 65de7e84fdc71a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-04-17 1746 struct iwl_mod_params iwlwifi_mod_params = { 3b37f4c99c93ab drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2017-05-30 1747 .fw_restart = true, 65de7e84fdc71a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-04-17 1748 .bt_coex_active = true, 65de7e84fdc71a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-04-17 1749 .power_level = IWL_POWER_INDEX_1, 11dee0b4946bc8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Emmanuel Grumbach 2016-03-15 1750 .uapsd_disable = IWL_DISABLE_UAPSD_BSS | IWL_DISABLE_UAPSD_P2P_CLIENT, b0d8d2c27007da drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2019-11-07 1751 .enable_ini = true, 65de7e84fdc71a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-04-17 1752 /* the rest are 0 by default */ 65de7e84fdc71a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-04-17 1753 }; 48e29340d54104 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-03-01 @1754 IWL_EXPORT_SYMBOL(iwlwifi_mod_params); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1755 cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1756 int iwl_opmode_register(const char *name, const struct iwl_op_mode_ops *ops) cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1757 { cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1758 int i; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1759 struct iwl_drv *drv; 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1760 struct iwlwifi_opmode_table *op; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1761 ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1762 mutex_lock(&iwlwifi_opmode_table_mtx); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1763 for (i = 0; i < ARRAY_SIZE(iwlwifi_opmode_table); i++) { 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1764 op = &iwlwifi_opmode_table[i]; 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1765 if (strcmp(op->name, name)) cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1766 continue; 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1767 op->ops = ops; 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1768 /* TODO: need to handle exceptional case */ 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1769 list_for_each_entry(drv, &op->drv, list) 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1770 drv->op_mode = _iwl_op_mode_start(drv, op); 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1771 ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1772 mutex_unlock(&iwlwifi_opmode_table_mtx); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1773 return 0; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1774 } ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1775 mutex_unlock(&iwlwifi_opmode_table_mtx); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1776 return -EIO; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1777 } 48e29340d54104 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-03-01 @1778 IWL_EXPORT_SYMBOL(iwl_opmode_register); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1779 cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1780 void iwl_opmode_deregister(const char *name) cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1781 { cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1782 int i; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1783 struct iwl_drv *drv; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1784 ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1785 mutex_lock(&iwlwifi_opmode_table_mtx); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1786 for (i = 0; i < ARRAY_SIZE(iwlwifi_opmode_table); i++) { cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1787 if (strcmp(iwlwifi_opmode_table[i].name, name)) cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1788 continue; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1789 iwlwifi_opmode_table[i].ops = NULL; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1790 cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1791 /* call the stop routine for all devices */ 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1792 list_for_each_entry(drv, &iwlwifi_opmode_table[i].drv, list) 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1793 _iwl_op_mode_stop(drv); 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1794 ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1795 mutex_unlock(&iwlwifi_opmode_table_mtx); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1796 return; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1797 } ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1798 mutex_unlock(&iwlwifi_opmode_table_mtx); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1799 } 48e29340d54104 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-03-01 @1800 IWL_EXPORT_SYMBOL(iwl_opmode_deregister); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1801 cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1802 static int __init iwl_drv_init(void) cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1803 { ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1804 int i, err; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1805 cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1806 for (i = 0; i < ARRAY_SIZE(iwlwifi_opmode_table); i++) cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1807 INIT_LIST_HEAD(&iwlwifi_opmode_table[i].drv); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1808 e32ec12fd11fbc drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2014-10-22 1809 pr_info(DRV_DESCRIPTION "\n"); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1810 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1811 #ifdef CONFIG_IWLWIFI_DEBUGFS 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1812 /* Create the root of iwlwifi debugfs subsystem. */ 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1813 iwl_dbgfs_root = debugfs_create_dir(DRV_NAME, NULL); 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1814 #endif 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1815 ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1816 err = iwl_pci_register_driver(); ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1817 if (err) ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1818 goto cleanup_debugfs; ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1819 ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1820 return 0; ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1821 ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1822 cleanup_debugfs: ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1823 #ifdef CONFIG_IWLWIFI_DEBUGFS ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1824 debugfs_remove_recursive(iwl_dbgfs_root); ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1825 #endif ee3399e5230c5a drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2019-05-10 1826 return err; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1827 } cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 @1828 module_init(iwl_drv_init); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1829 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org