From: kernel test robot <lkp@intel.com> To: Luca Coelho <luca@coelho.fi>, kvalo@codeaurora.org Cc: kbuild-all@lists.01.org, luca@coelho.fi, linux-wireless@vger.kernel.org Subject: Re: [PATCH] iwlwifi: mvm: retry init flow if failed Date: Wed, 10 Nov 2021 22:15:04 +0800 [thread overview] Message-ID: <202111102225.2lAk9WxL-lkp@intel.com> (raw) In-Reply-To: <iwlwifi.20211109192950.486dfa9c4f35.I52a0411774b700bdc7dedb124d8b59bf99456eb2@changeid> [-- Attachment #1: Type: text/plain, Size: 80344 bytes --] 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: arc-allyesconfig (attached as .config) compiler: arceb-elf-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=arc SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> 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) | ^~~~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1756:1: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1756 | int iwl_opmode_register(const char *name, const struct iwl_op_mode_ops *ops) | ^~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1780:1: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1780 | void iwl_opmode_deregister(const char *name) | ^~~~ >> 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) | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1802:1: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1802 | static int __init iwl_drv_init(void) | ^~~~~~ In file included from arch/arc/include/asm/smp.h:12, from arch/arc/include/asm/cmpxchg.h:13, from arch/arc/include/asm/atomic.h:13, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/arc/include/asm/bitops.h:188, from include/linux/bitops.h:33, from include/linux/kernel.h:12, 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:1828:13: error: initializer element is not constant 1828 | module_init(iwl_drv_init); | ^~~~~~~~~~~~ include/linux/init.h:250:55: note: in definition of macro '____define_initcall' 250 | __attribute__((__section__(__sec))) = fn; | ^~ include/linux/init.h:260:9: note: in expansion of macro '__unique_initcall' 260 | __unique_initcall(fn, id, __sec, __initcall_id(fn)) | ^~~~~~~~~~~~~~~~~ include/linux/init.h:262:35: note: in expansion of macro '___define_initcall' 262 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id) | ^~~~~~~~~~~~~~~~~~ include/linux/init.h:291:41: note: in expansion of macro '__define_initcall' 291 | #define device_initcall(fn) __define_initcall(fn, 6) | ^~~~~~~~~~~~~~~~~ include/linux/init.h:296:24: note: in expansion of macro 'device_initcall' 296 | #define __initcall(fn) device_initcall(fn) | ^~~~~~~~~~~~~~~ include/linux/module.h:88:25: note: in expansion of macro '__initcall' 88 | #define module_init(x) __initcall(x); | ^~~~~~~~~~ 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: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 arch/arc/include/asm/smp.h:12, from arch/arc/include/asm/cmpxchg.h:13, from arch/arc/include/asm/atomic.h:13, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/arc/include/asm/bitops.h:188, from include/linux/bitops.h:33, from include/linux/kernel.h:12, 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:1838:13: error: initializer element is not constant 1838 | module_exit(iwl_drv_exit); | ^~~~~~~~~~~~ include/linux/init.h:299:57: note: in definition of macro '__exitcall' 299 | static exitcall_t __exitcall_##fn __exit_call = fn | ^~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1838:1: note: in expansion of macro 'module_exit' 1838 | module_exit(iwl_drv_exit); | ^~~~~~~~~~~ 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:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: note: (near initialization for '__param_debug.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: note: (near initialization for '__param_swcrypto.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: note: (near initialization for '__param_11n_disable.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1850:1: note: in expansion of macro 'module_param_named' 1850 | module_param_named(amsdu_size, iwlwifi_mod_params.amsdu_size, 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:1850:1: note: in expansion of macro 'module_param_named' 1850 | module_param_named(amsdu_size, iwlwifi_mod_params.amsdu_size, int, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1850:1: note: in expansion of macro 'module_param_named' 1850 | module_param_named(amsdu_size, iwlwifi_mod_params.amsdu_size, int, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_amsdu_size.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1850:1: note: in expansion of macro 'module_param_named' 1850 | module_param_named(amsdu_size, iwlwifi_mod_params.amsdu_size, int, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_fw_restart' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:468:35: note: in expansion of macro '__param_check' 468 | #define param_check_bool(name, p) __param_check(name, p, bool) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_bool' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1854:1: note: in expansion of macro 'module_param_named' 1854 | module_param_named(fw_restart, iwlwifi_mod_params.fw_restart, bool, 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:1854:1: note: in expansion of macro 'module_param_named' 1854 | module_param_named(fw_restart, iwlwifi_mod_params.fw_restart, bool, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1854:1: note: in expansion of macro 'module_param_named' 1854 | module_param_named(fw_restart, iwlwifi_mod_params.fw_restart, bool, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_fw_restart.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1854:1: note: in expansion of macro 'module_param_named' 1854 | module_param_named(fw_restart, iwlwifi_mod_params.fw_restart, bool, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_nvm_file' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:462:36: note: in expansion of macro '__param_check' 462 | #define param_check_charp(name, p) __param_check(name, p, char *) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_charp' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1857:1: note: in expansion of macro 'module_param_named' 1857 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, 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:1857:1: note: in expansion of macro 'module_param_named' 1857 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1857:1: note: in expansion of macro 'module_param_named' 1857 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_nvm_file.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1857:1: note: in expansion of macro 'module_param_named' 1857 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_uapsd_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:1860:1: note: in expansion of macro 'module_param_named' 1860 | module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, 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:1860:1: note: in expansion of macro 'module_param_named' 1860 | module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, uint, 0644); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1860:1: note: in expansion of macro 'module_param_named' 1860 | module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, uint, 0644); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_uapsd_disable.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1860:1: note: in expansion of macro 'module_param_named' 1860 | module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, uint, 0644); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_enable_ini' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:468:35: note: in expansion of macro '__param_check' 468 | #define param_check_bool(name, p) __param_check(name, p, bool) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_bool' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1863:1: note: in expansion of macro 'module_param_named' 1863 | module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, | ^~~~~~~~~~~~~~~~~~ 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:1863:1: note: in expansion of macro 'module_param_named' 1863 | module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1863:1: note: in expansion of macro 'module_param_named' 1863 | module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_enable_ini.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1863:1: note: in expansion of macro 'module_param_named' 1863 | module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_bt_coex_active' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:468:35: note: in expansion of macro '__param_check' 468 | #define param_check_bool(name, p) __param_check(name, p, bool) vim +/_iwl_op_mode_stop +1342 drivers/net/wireless/intel/iwlwifi/iwl-drv.c 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1341 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 @1342 static void _iwl_op_mode_stop(struct iwl_drv *drv) 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1343 { 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1344 /* op_mode can be NULL if its start failed */ 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1345 if (drv->op_mode) { 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1346 iwl_op_mode_stop(drv->op_mode); 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1347 drv->op_mode = NULL; 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1348 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1349 #ifdef CONFIG_IWLWIFI_DEBUGFS 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1350 debugfs_remove_recursive(drv->dbgfs_op_mode); 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1351 drv->dbgfs_op_mode = NULL; 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1352 #endif 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1353 } 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1354 } 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1355 7d4ced86997f69 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Lee Jones 2020-09-10 1356 /* 1c8e11e117c28e drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2012-07-16 1357 * iwl_req_fw_callback - callback when firmware was loaded 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1358 * 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1359 * If loaded successfully, copies the firmware into buffers 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1360 * for the card to fetch (via DMA). 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1361 */ 1c8e11e117c28e drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2012-07-16 @1362 static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1363 { 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1364 struct iwl_drv *drv = context; 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1365 struct iwl_fw *fw = &drv->fw; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1366 struct iwl_ucode_header *ucode; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1367 struct iwlwifi_opmode_table *op; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1368 int err; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1369 struct iwl_firmware_pieces *pieces; 0c4881ced8d2e3 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-12-13 1370 const unsigned int api_max = drv->trans->cfg->ucode_api_max; 0c4881ced8d2e3 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-12-13 1371 const unsigned int api_min = drv->trans->cfg->ucode_api_min; 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1372 size_t trigger_tlv_sz[FW_DBG_TRIGGER_MAX]; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1373 u32 api_ver; 6dfa8d019cd21d drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1374 int i; d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1375 bool load_module = false; e6eb8ca9e486a8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2015-08-30 1376 bool usniffer_images = false; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1377 66140adc22aacd drivers/net/wireless/iwlwifi/iwl-drv.c Luciano Coelho 2013-08-12 1378 fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1379 fw->ucode_capa.standard_phy_calibration_size = 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1380 IWL_DEFAULT_STANDARD_PHY_CALIBRATE_TBL_SIZE; 762533ba9c0306 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2014-06-05 1381 fw->ucode_capa.n_scan_channels = IWL_DEFAULT_SCAN_CHANNELS; be9ae34ead42f8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Nathan Errera 2020-10-08 1382 fw->ucode_capa.num_stations = IWL_MVM_STATION_COUNT_MAX; 971377e67074a0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-01-01 1383 /* dump all fw memory areas by default */ 971377e67074a0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-01-01 1384 fw->dbg.dump_mask = 0xffffffff; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1385 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1386 pieces = kzalloc(sizeof(*pieces), GFP_KERNEL); 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1387 if (!pieces) 53d515ec677a19 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2017-02-28 1388 goto out_free_fw; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1389 9d9b21d1b61647 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Emmanuel Grumbach 2016-03-24 1390 if (!ucode_raw) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1391 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1392 2953c393a0a469 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-03-04 1393 IWL_DEBUG_FW_INFO(drv, "Loaded firmware file '%s' (%zd bytes).\n", 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1394 drv->firmware_name, ucode_raw->size); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1395 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1396 /* Make sure that we got at least the API version number */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1397 if (ucode_raw->size < 4) { 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1398 IWL_ERR(drv, "File size way too small!\n"); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1399 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1400 } 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1401 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1402 /* Data from ucode file: header followed by uCode images */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1403 ucode = (struct iwl_ucode_header *)ucode_raw->data; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1404 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1405 if (ucode->ver) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1406 err = iwl_parse_v1_v2_firmware(drv, ucode_raw, pieces); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1407 else 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1408 err = iwl_parse_tlv_firmware(drv, ucode_raw, pieces, e6eb8ca9e486a8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2015-08-30 1409 &fw->ucode_capa, &usniffer_images); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1410 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1411 if (err) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1412 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1413 f0d8f38cd909e0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-04-25 1414 if (fw_has_api(&drv->fw.ucode_capa, IWL_UCODE_TLV_API_NEW_VERSION)) 7e1223b50089ab drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-02-03 1415 api_ver = drv->fw.ucode_ver; f0d8f38cd909e0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-04-25 1416 else f0d8f38cd909e0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-04-25 1417 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1418 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1419 /* 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1420 * api_ver should match the api version forming part of the 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1421 * firmware filename ... but we don't check for that and only rely 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1422 * on the API version read from firmware header from here on forward 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1423 */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1424 if (api_ver < api_min || api_ver > api_max) { 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1425 IWL_ERR(drv, 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1426 "Driver unable to support your firmware API. " 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1427 "Driver supports v%u, firmware is v%u.\n", 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1428 api_max, api_ver); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1429 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1430 } 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1431 4db2c9aeb28762 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1432 /* 4db2c9aeb28762 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1433 * In mvm uCode there is no difference between data and instructions 4db2c9aeb28762 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1434 * sections. 4db2c9aeb28762 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1435 */ 0c4881ced8d2e3 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-12-13 1436 if (fw->type == IWL_FW_DVM && validate_sec_sizes(drv, pieces, 0c4881ced8d2e3 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-12-13 1437 drv->trans->cfg)) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1438 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1439 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1440 /* Allocate ucode buffers for card's bus-master loading ... */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1441 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1442 /* Runtime instructions and 2 copies of data: 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1443 * 1) unmodified from disk 1e37f79945b0b8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Christoph Böhmwalder 2017-09-23 1444 * 2) backup cache for save/restore during power-downs 1e37f79945b0b8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Christoph Böhmwalder 2017-09-23 1445 */ 6dfa8d019cd21d drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1446 for (i = 0; i < IWL_UCODE_TYPE_MAX; i++) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1447 if (iwl_alloc_ucode(drv, pieces, i)) 75813bde1f671a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-05-16 1448 goto out_free_fw; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1449 fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1450 if (pieces->dbg_dest_tlv_init) { 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1451 size_t dbg_dest_size = sizeof(*drv->fw.dbg.dest_tlv) + 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1452 sizeof(drv->fw.dbg.dest_tlv->reg_ops[0]) * 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1453 drv->fw.dbg.n_dest_reg; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1454 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1455 drv->fw.dbg.dest_tlv = kmalloc(dbg_dest_size, GFP_KERNEL); 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1456 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1457 if (!drv->fw.dbg.dest_tlv) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1458 goto out_free_fw; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1459 fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1460 if (*pieces->dbg_dest_ver == 0) { 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1461 memcpy(drv->fw.dbg.dest_tlv, pieces->dbg_dest_tlv_v1, fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1462 dbg_dest_size); fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1463 } else { fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1464 struct iwl_fw_dbg_dest_tlv_v1 *dest_tlv = 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1465 drv->fw.dbg.dest_tlv; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1466 fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1467 dest_tlv->version = pieces->dbg_dest_tlv->version; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1468 dest_tlv->monitor_mode = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1469 pieces->dbg_dest_tlv->monitor_mode; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1470 dest_tlv->size_power = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1471 pieces->dbg_dest_tlv->size_power; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1472 dest_tlv->wrap_count = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1473 pieces->dbg_dest_tlv->wrap_count; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1474 dest_tlv->write_ptr_reg = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1475 pieces->dbg_dest_tlv->write_ptr_reg; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1476 dest_tlv->base_shift = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1477 pieces->dbg_dest_tlv->base_shift; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1478 memcpy(dest_tlv->reg_ops, fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1479 pieces->dbg_dest_tlv->reg_ops, 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1480 sizeof(drv->fw.dbg.dest_tlv->reg_ops[0]) * 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1481 drv->fw.dbg.n_dest_reg); fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1482 fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1483 /* In version 1 of the destination tlv, which is fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1484 * relevant for internal buffer exclusively, fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1485 * the base address is part of given with the length fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1486 * of the buffer, and the size shift is give instead of fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1487 * end shift. We now store these values in base_reg, fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1488 * and end shift, and when dumping the data we'll fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1489 * manipulate it for extracting both the length and fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1490 * base address */ fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1491 dest_tlv->base_reg = pieces->dbg_dest_tlv->cfg_reg; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1492 dest_tlv->end_shift = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1493 pieces->dbg_dest_tlv->size_shift; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1494 } 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1495 } 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1496 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1497 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg.conf_tlv); i++) { 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1498 if (pieces->dbg_conf_tlv[i]) { 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1499 drv->fw.dbg.conf_tlv[i] = 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1500 kmemdup(pieces->dbg_conf_tlv[i], 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1501 pieces->dbg_conf_tlv_len[i], 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1502 GFP_KERNEL); a176e114ace4cc drivers/net/wireless/intel/iwlwifi/iwl-drv.c Chris Rorvick 2020-04-17 1503 if (!drv->fw.dbg.conf_tlv[i]) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1504 goto out_free_fw; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1505 } 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1506 } 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1507 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1508 memset(&trigger_tlv_sz, 0xff, sizeof(trigger_tlv_sz)); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1509 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1510 trigger_tlv_sz[FW_DBG_TRIGGER_MISSED_BEACONS] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1511 sizeof(struct iwl_fw_dbg_trigger_missed_bcon); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1512 trigger_tlv_sz[FW_DBG_TRIGGER_CHANNEL_SWITCH] = 0; 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1513 trigger_tlv_sz[FW_DBG_TRIGGER_FW_NOTIF] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1514 sizeof(struct iwl_fw_dbg_trigger_cmd); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1515 trigger_tlv_sz[FW_DBG_TRIGGER_MLME] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1516 sizeof(struct iwl_fw_dbg_trigger_mlme); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1517 trigger_tlv_sz[FW_DBG_TRIGGER_STATS] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1518 sizeof(struct iwl_fw_dbg_trigger_stats); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1519 trigger_tlv_sz[FW_DBG_TRIGGER_RSSI] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1520 sizeof(struct iwl_fw_dbg_trigger_low_rssi); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1521 trigger_tlv_sz[FW_DBG_TRIGGER_TXQ_TIMERS] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1522 sizeof(struct iwl_fw_dbg_trigger_txq_timer); 874c174eb9950a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-25 1523 trigger_tlv_sz[FW_DBG_TRIGGER_TIME_EVENT] = 874c174eb9950a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-25 1524 sizeof(struct iwl_fw_dbg_trigger_time_event); 4203263d8302be drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-04-15 1525 trigger_tlv_sz[FW_DBG_TRIGGER_BA] = 4203263d8302be drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-04-15 1526 sizeof(struct iwl_fw_dbg_trigger_ba); 1e8f1329aa6767 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2015-08-23 1527 trigger_tlv_sz[FW_DBG_TRIGGER_TDLS] = 1e8f1329aa6767 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2015-08-23 1528 sizeof(struct iwl_fw_dbg_trigger_tdls); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1529 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1530 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg.trigger_tlv); i++) { d2709ad723ff2a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-01-29 1531 if (pieces->dbg_trigger_tlv[i]) { 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1532 /* 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1533 * If the trigger isn't long enough, WARN and exit. 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1534 * Someone is trying to debug something and he won't 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1535 * be able to catch the bug he is trying to chase. 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1536 * We'd better be noisy to be sure he knows what's 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1537 * going on. 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1538 */ 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1539 if (WARN_ON(pieces->dbg_trigger_tlv_len[i] < 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1540 (trigger_tlv_sz[i] + 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1541 sizeof(struct iwl_fw_dbg_trigger_tlv)))) 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1542 goto out_free_fw; 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1543 drv->fw.dbg.trigger_tlv_len[i] = d2709ad723ff2a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-01-29 1544 pieces->dbg_trigger_tlv_len[i]; 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1545 drv->fw.dbg.trigger_tlv[i] = d2709ad723ff2a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-01-29 1546 kmemdup(pieces->dbg_trigger_tlv[i], 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1547 drv->fw.dbg.trigger_tlv_len[i], d2709ad723ff2a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-01-29 1548 GFP_KERNEL); 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1549 if (!drv->fw.dbg.trigger_tlv[i]) a6017b9030f280 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2016-03-14 1550 goto out_free_fw; a6017b9030f280 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2016-03-14 1551 } a6017b9030f280 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2016-03-14 1552 } a6017b9030f280 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2016-03-14 1553 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1554 /* Now that we can no longer fail, copy information */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1555 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1556 drv->fw.dbg.mem_tlv = pieces->dbg_mem_tlv; 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1557 pieces->dbg_mem_tlv = NULL; 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1558 drv->fw.dbg.n_mem_tlv = pieces->n_mem_tlv; 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1559 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1560 /* 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1561 * The (size - 16) / 12 formula is based on the information recorded 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1562 * for each event, which is of mode 1 (including timestamp) for all 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1563 * new microcodes that include this information. 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1564 */ 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1565 fw->init_evtlog_ptr = pieces->init_evtlog_ptr; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1566 if (pieces->init_evtlog_size) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1567 fw->init_evtlog_size = (pieces->init_evtlog_size - 16)/12; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1568 else 0692fe41b36159 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1569 fw->init_evtlog_size = 286ca8eb4d0a97 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2019-07-12 1570 drv->trans->trans_cfg->base_params->max_event_log_size; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1571 fw->init_errlog_ptr = pieces->init_errlog_ptr; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1572 fw->inst_evtlog_ptr = pieces->inst_evtlog_ptr; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1573 if (pieces->inst_evtlog_size) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1574 fw->inst_evtlog_size = (pieces->inst_evtlog_size - 16)/12; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1575 else 0692fe41b36159 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1576 fw->inst_evtlog_size = 286ca8eb4d0a97 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2019-07-12 1577 drv->trans->trans_cfg->base_params->max_event_log_size; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1578 fw->inst_errlog_ptr = pieces->inst_errlog_ptr; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1579 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1580 /* 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1581 * figure out the offset of chain noise reset and gain commands 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1582 * base on the size of standard phy calibration commands table size 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1583 */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1584 if (fw->ucode_capa.standard_phy_calibration_size > 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1585 IWL_MAX_PHY_CALIBRATE_TBL_SIZE) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1586 fw->ucode_capa.standard_phy_calibration_size = 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1587 IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1588 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1589 /* We have our copies now, allow OS release its copies */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1590 release_firmware(ucode_raw); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1591 ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1592 mutex_lock(&iwlwifi_opmode_table_mtx); ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1593 switch (fw->type) { ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1594 case IWL_FW_DVM: cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1595 op = &iwlwifi_opmode_table[DVM_OP_MODE]; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1596 break; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1597 default: ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1598 WARN(1, "Invalid fw type %d\n", fw->type); 10a0472d1850a9 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Gustavo A. R. Silva 2020-11-20 1599 fallthrough; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1600 case IWL_FW_MVM: ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1601 op = &iwlwifi_opmode_table[MVM_OP_MODE]; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1602 break; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1603 } 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1604 2b2719c7b5bbe3 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-03-26 1605 IWL_INFO(drv, "loaded firmware version %s op_mode %s\n", 2b2719c7b5bbe3 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-03-26 1606 drv->fw.fw_version, op->name); 2b2719c7b5bbe3 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-03-26 1607 c03fe6d3b31c75 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-07-08 1608 iwl_dbg_tlv_load_bin(drv->trans->dev, drv->trans); c03fe6d3b31c75 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-07-08 1609 cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1610 /* add this device to the list of devices using this op_mode */ cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1611 list_add_tail(&drv->list, &op->drv); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1612 cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1613 if (op->ops) { 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1614 drv->op_mode = _iwl_op_mode_start(drv, op); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1615 daf67ce8cffd14 drivers/net/wireless/iwlwifi/iwl-drv.c Dan Carpenter 2012-06-14 1616 if (!drv->op_mode) { daf67ce8cffd14 drivers/net/wireless/iwlwifi/iwl-drv.c Dan Carpenter 2012-06-14 1617 mutex_unlock(&iwlwifi_opmode_table_mtx); f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1618 goto out_unbind; daf67ce8cffd14 drivers/net/wireless/iwlwifi/iwl-drv.c Dan Carpenter 2012-06-14 1619 } cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1620 } else { d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1621 load_module = true; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1622 } ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1623 mutex_unlock(&iwlwifi_opmode_table_mtx); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1624 f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1625 /* f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1626 * Complete the firmware request last so that f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1627 * a driver unbind (stop) doesn't run while we f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1628 * are doing the start() above. f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1629 */ f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1630 complete(&drv->request_firmware_complete); d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1631 d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1632 /* d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1633 * Load the module last so we don't block anything d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1634 * else from proceeding if the module fails to load d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1635 * or hangs loading. d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1636 */ 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1637 if (load_module) { 06a1e85e66bac2 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2017-02-28 1638 request_module("%s", op->name); 8edf3fd6eb0649 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-05-28 1639 #ifdef CONFIG_IWLWIFI_OPMODE_MODULAR 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1640 if (err) 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1641 IWL_ERR(drv, 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1642 "failed to load module %s (error %d), is dynamic loading enabled?\n", 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1643 op->name, err); 8edf3fd6eb0649 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-05-28 1644 #endif 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1645 } 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1646 goto free; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1647 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1648 try_again: 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1649 /* try next, if any */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1650 release_firmware(ucode_raw); 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1651 if (iwl_request_firmware(drv, false)) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1652 goto out_unbind; 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1653 goto free; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1654 75813bde1f671a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-05-16 1655 out_free_fw: 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1656 release_firmware(ucode_raw); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1657 out_unbind: 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1658 complete(&drv->request_firmware_complete); 93faaeea4f2873 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2012-03-22 1659 device_release_driver(drv->trans->dev); 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1660 free: 53d515ec677a19 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2017-02-28 1661 if (pieces) { eef187a7b8a144 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2016-10-25 1662 for (i = 0; i < ARRAY_SIZE(pieces->img); i++) eef187a7b8a144 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2016-10-25 1663 kfree(pieces->img[i].sec); 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1664 kfree(pieces->dbg_mem_tlv); 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1665 kfree(pieces); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1666 } 53d515ec677a19 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2017-02-28 1667 } 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1668 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 69552 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: Re: [PATCH] iwlwifi: mvm: retry init flow if failed Date: Wed, 10 Nov 2021 22:15:04 +0800 [thread overview] Message-ID: <202111102225.2lAk9WxL-lkp@intel.com> (raw) In-Reply-To: <iwlwifi.20211109192950.486dfa9c4f35.I52a0411774b700bdc7dedb124d8b59bf99456eb2@changeid> [-- Attachment #1: Type: text/plain, Size: 81202 bytes --] 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: arc-allyesconfig (attached as .config) compiler: arceb-elf-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=arc SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> 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) | ^~~~~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1756:1: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1756 | int iwl_opmode_register(const char *name, const struct iwl_op_mode_ops *ops) | ^~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1780:1: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1780 | void iwl_opmode_deregister(const char *name) | ^~~~ >> 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) | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1802:1: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1802 | static int __init iwl_drv_init(void) | ^~~~~~ In file included from arch/arc/include/asm/smp.h:12, from arch/arc/include/asm/cmpxchg.h:13, from arch/arc/include/asm/atomic.h:13, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/arc/include/asm/bitops.h:188, from include/linux/bitops.h:33, from include/linux/kernel.h:12, 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:1828:13: error: initializer element is not constant 1828 | module_init(iwl_drv_init); | ^~~~~~~~~~~~ include/linux/init.h:250:55: note: in definition of macro '____define_initcall' 250 | __attribute__((__section__(__sec))) = fn; | ^~ include/linux/init.h:260:9: note: in expansion of macro '__unique_initcall' 260 | __unique_initcall(fn, id, __sec, __initcall_id(fn)) | ^~~~~~~~~~~~~~~~~ include/linux/init.h:262:35: note: in expansion of macro '___define_initcall' 262 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id) | ^~~~~~~~~~~~~~~~~~ include/linux/init.h:291:41: note: in expansion of macro '__define_initcall' 291 | #define device_initcall(fn) __define_initcall(fn, 6) | ^~~~~~~~~~~~~~~~~ include/linux/init.h:296:24: note: in expansion of macro 'device_initcall' 296 | #define __initcall(fn) device_initcall(fn) | ^~~~~~~~~~~~~~~ include/linux/module.h:88:25: note: in expansion of macro '__initcall' 88 | #define module_init(x) __initcall(x); | ^~~~~~~~~~ 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: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 arch/arc/include/asm/smp.h:12, from arch/arc/include/asm/cmpxchg.h:13, from arch/arc/include/asm/atomic.h:13, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/arc/include/asm/bitops.h:188, from include/linux/bitops.h:33, from include/linux/kernel.h:12, 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:1838:13: error: initializer element is not constant 1838 | module_exit(iwl_drv_exit); | ^~~~~~~~~~~~ include/linux/init.h:299:57: note: in definition of macro '__exitcall' 299 | static exitcall_t __exitcall_##fn __exit_call = fn | ^~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1838:1: note: in expansion of macro 'module_exit' 1838 | module_exit(iwl_drv_exit); | ^~~~~~~~~~~ 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:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: note: (near initialization for '__param_debug.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: note: (near initialization for '__param_swcrypto.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:151:50: note: (near initialization for '__param_11n_disable.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1850:1: note: in expansion of macro 'module_param_named' 1850 | module_param_named(amsdu_size, iwlwifi_mod_params.amsdu_size, 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:1850:1: note: in expansion of macro 'module_param_named' 1850 | module_param_named(amsdu_size, iwlwifi_mod_params.amsdu_size, int, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1850:1: note: in expansion of macro 'module_param_named' 1850 | module_param_named(amsdu_size, iwlwifi_mod_params.amsdu_size, int, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_amsdu_size.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1850:1: note: in expansion of macro 'module_param_named' 1850 | module_param_named(amsdu_size, iwlwifi_mod_params.amsdu_size, int, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_fw_restart' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:468:35: note: in expansion of macro '__param_check' 468 | #define param_check_bool(name, p) __param_check(name, p, bool) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_bool' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1854:1: note: in expansion of macro 'module_param_named' 1854 | module_param_named(fw_restart, iwlwifi_mod_params.fw_restart, bool, 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:1854:1: note: in expansion of macro 'module_param_named' 1854 | module_param_named(fw_restart, iwlwifi_mod_params.fw_restart, bool, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1854:1: note: in expansion of macro 'module_param_named' 1854 | module_param_named(fw_restart, iwlwifi_mod_params.fw_restart, bool, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_fw_restart.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1854:1: note: in expansion of macro 'module_param_named' 1854 | module_param_named(fw_restart, iwlwifi_mod_params.fw_restart, bool, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_nvm_file' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:462:36: note: in expansion of macro '__param_check' 462 | #define param_check_charp(name, p) __param_check(name, p, char *) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_charp' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1857:1: note: in expansion of macro 'module_param_named' 1857 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, 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:1857:1: note: in expansion of macro 'module_param_named' 1857 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1857:1: note: in expansion of macro 'module_param_named' 1857 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, 0444); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_nvm_file.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1857:1: note: in expansion of macro 'module_param_named' 1857 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, 0444); | ^~~~~~~~~~~~~~~~~~ >> include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_uapsd_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:1860:1: note: in expansion of macro 'module_param_named' 1860 | module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, 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:1860:1: note: in expansion of macro 'module_param_named' 1860 | module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, uint, 0644); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1860:1: note: in expansion of macro 'module_param_named' 1860 | module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, uint, 0644); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_uapsd_disable.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1860:1: note: in expansion of macro 'module_param_named' 1860 | module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, uint, 0644); | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_enable_ini' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:468:35: note: in expansion of macro '__param_check' 468 | #define param_check_bool(name, p) __param_check(name, p, bool) | ^~~~~~~~~~~~~ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_bool' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/iwl-drv.c:1863:1: note: in expansion of macro 'module_param_named' 1863 | module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, | ^~~~~~~~~~~~~~~~~~ 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:1863:1: note: in expansion of macro 'module_param_named' 1863 | module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: error: initializer element is not constant 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1863:1: note: in expansion of macro 'module_param_named' 1863 | module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:151:50: note: (near initialization for '__param_enable_ini.<anonymous>.arg') 151 | module_param_cb(name, ¶m_ops_##type, &value, perm); \ | ^ include/linux/moduleparam.h:294:61: note: in definition of macro '__module_param_call' 294 | VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } } | ^~~ 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:1863:1: note: in expansion of macro 'module_param_named' 1863 | module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, | ^~~~~~~~~~~~~~~~~~ include/linux/moduleparam.h:409:45: error: invalid storage class for function '__check_bt_coex_active' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^~~~~~~~ include/linux/moduleparam.h:468:35: note: in expansion of macro '__param_check' 468 | #define param_check_bool(name, p) __param_check(name, p, bool) vim +/_iwl_op_mode_stop +1342 drivers/net/wireless/intel/iwlwifi/iwl-drv.c 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1341 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 @1342 static void _iwl_op_mode_stop(struct iwl_drv *drv) 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1343 { 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1344 /* op_mode can be NULL if its start failed */ 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1345 if (drv->op_mode) { 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1346 iwl_op_mode_stop(drv->op_mode); 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1347 drv->op_mode = NULL; 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1348 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1349 #ifdef CONFIG_IWLWIFI_DEBUGFS 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1350 debugfs_remove_recursive(drv->dbgfs_op_mode); 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1351 drv->dbgfs_op_mode = NULL; 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1352 #endif 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1353 } 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1354 } 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1355 7d4ced86997f69 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Lee Jones 2020-09-10 1356 /* 1c8e11e117c28e drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2012-07-16 1357 * iwl_req_fw_callback - callback when firmware was loaded 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1358 * 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1359 * If loaded successfully, copies the firmware into buffers 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1360 * for the card to fetch (via DMA). 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1361 */ 1c8e11e117c28e drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2012-07-16 @1362 static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1363 { 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1364 struct iwl_drv *drv = context; 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1365 struct iwl_fw *fw = &drv->fw; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1366 struct iwl_ucode_header *ucode; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1367 struct iwlwifi_opmode_table *op; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1368 int err; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1369 struct iwl_firmware_pieces *pieces; 0c4881ced8d2e3 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-12-13 1370 const unsigned int api_max = drv->trans->cfg->ucode_api_max; 0c4881ced8d2e3 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-12-13 1371 const unsigned int api_min = drv->trans->cfg->ucode_api_min; 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1372 size_t trigger_tlv_sz[FW_DBG_TRIGGER_MAX]; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1373 u32 api_ver; 6dfa8d019cd21d drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1374 int i; d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1375 bool load_module = false; e6eb8ca9e486a8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2015-08-30 1376 bool usniffer_images = false; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1377 66140adc22aacd drivers/net/wireless/iwlwifi/iwl-drv.c Luciano Coelho 2013-08-12 1378 fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1379 fw->ucode_capa.standard_phy_calibration_size = 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1380 IWL_DEFAULT_STANDARD_PHY_CALIBRATE_TBL_SIZE; 762533ba9c0306 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2014-06-05 1381 fw->ucode_capa.n_scan_channels = IWL_DEFAULT_SCAN_CHANNELS; be9ae34ead42f8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Nathan Errera 2020-10-08 1382 fw->ucode_capa.num_stations = IWL_MVM_STATION_COUNT_MAX; 971377e67074a0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-01-01 1383 /* dump all fw memory areas by default */ 971377e67074a0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-01-01 1384 fw->dbg.dump_mask = 0xffffffff; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1385 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1386 pieces = kzalloc(sizeof(*pieces), GFP_KERNEL); 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1387 if (!pieces) 53d515ec677a19 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2017-02-28 1388 goto out_free_fw; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1389 9d9b21d1b61647 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Emmanuel Grumbach 2016-03-24 1390 if (!ucode_raw) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1391 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1392 2953c393a0a469 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-03-04 1393 IWL_DEBUG_FW_INFO(drv, "Loaded firmware file '%s' (%zd bytes).\n", 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1394 drv->firmware_name, ucode_raw->size); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1395 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1396 /* Make sure that we got at least the API version number */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1397 if (ucode_raw->size < 4) { 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1398 IWL_ERR(drv, "File size way too small!\n"); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1399 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1400 } 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1401 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1402 /* Data from ucode file: header followed by uCode images */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1403 ucode = (struct iwl_ucode_header *)ucode_raw->data; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1404 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1405 if (ucode->ver) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1406 err = iwl_parse_v1_v2_firmware(drv, ucode_raw, pieces); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1407 else 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1408 err = iwl_parse_tlv_firmware(drv, ucode_raw, pieces, e6eb8ca9e486a8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2015-08-30 1409 &fw->ucode_capa, &usniffer_images); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1410 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1411 if (err) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1412 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1413 f0d8f38cd909e0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-04-25 1414 if (fw_has_api(&drv->fw.ucode_capa, IWL_UCODE_TLV_API_NEW_VERSION)) 7e1223b50089ab drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-02-03 1415 api_ver = drv->fw.ucode_ver; f0d8f38cd909e0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-04-25 1416 else f0d8f38cd909e0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-04-25 1417 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1418 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1419 /* 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1420 * api_ver should match the api version forming part of the 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1421 * firmware filename ... but we don't check for that and only rely 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1422 * on the API version read from firmware header from here on forward 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1423 */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1424 if (api_ver < api_min || api_ver > api_max) { 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1425 IWL_ERR(drv, 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1426 "Driver unable to support your firmware API. " 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1427 "Driver supports v%u, firmware is v%u.\n", 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1428 api_max, api_ver); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1429 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1430 } 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1431 4db2c9aeb28762 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1432 /* 4db2c9aeb28762 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1433 * In mvm uCode there is no difference between data and instructions 4db2c9aeb28762 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1434 * sections. 4db2c9aeb28762 drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1435 */ 0c4881ced8d2e3 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-12-13 1436 if (fw->type == IWL_FW_DVM && validate_sec_sizes(drv, pieces, 0c4881ced8d2e3 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2016-12-13 1437 drv->trans->cfg)) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1438 goto try_again; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1439 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1440 /* Allocate ucode buffers for card's bus-master loading ... */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1441 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1442 /* Runtime instructions and 2 copies of data: 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1443 * 1) unmodified from disk 1e37f79945b0b8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Christoph Böhmwalder 2017-09-23 1444 * 2) backup cache for save/restore during power-downs 1e37f79945b0b8 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Christoph Böhmwalder 2017-09-23 1445 */ 6dfa8d019cd21d drivers/net/wireless/iwlwifi/iwl-drv.c David Spinadel 2012-03-10 1446 for (i = 0; i < IWL_UCODE_TYPE_MAX; i++) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1447 if (iwl_alloc_ucode(drv, pieces, i)) 75813bde1f671a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-05-16 1448 goto out_free_fw; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1449 fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1450 if (pieces->dbg_dest_tlv_init) { 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1451 size_t dbg_dest_size = sizeof(*drv->fw.dbg.dest_tlv) + 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1452 sizeof(drv->fw.dbg.dest_tlv->reg_ops[0]) * 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1453 drv->fw.dbg.n_dest_reg; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1454 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1455 drv->fw.dbg.dest_tlv = kmalloc(dbg_dest_size, GFP_KERNEL); 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1456 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1457 if (!drv->fw.dbg.dest_tlv) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1458 goto out_free_fw; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1459 fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1460 if (*pieces->dbg_dest_ver == 0) { 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1461 memcpy(drv->fw.dbg.dest_tlv, pieces->dbg_dest_tlv_v1, fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1462 dbg_dest_size); fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1463 } else { fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1464 struct iwl_fw_dbg_dest_tlv_v1 *dest_tlv = 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1465 drv->fw.dbg.dest_tlv; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1466 fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1467 dest_tlv->version = pieces->dbg_dest_tlv->version; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1468 dest_tlv->monitor_mode = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1469 pieces->dbg_dest_tlv->monitor_mode; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1470 dest_tlv->size_power = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1471 pieces->dbg_dest_tlv->size_power; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1472 dest_tlv->wrap_count = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1473 pieces->dbg_dest_tlv->wrap_count; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1474 dest_tlv->write_ptr_reg = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1475 pieces->dbg_dest_tlv->write_ptr_reg; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1476 dest_tlv->base_shift = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1477 pieces->dbg_dest_tlv->base_shift; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1478 memcpy(dest_tlv->reg_ops, fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1479 pieces->dbg_dest_tlv->reg_ops, 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1480 sizeof(drv->fw.dbg.dest_tlv->reg_ops[0]) * 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1481 drv->fw.dbg.n_dest_reg); fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1482 fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1483 /* In version 1 of the destination tlv, which is fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1484 * relevant for internal buffer exclusively, fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1485 * the base address is part of given with the length fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1486 * of the buffer, and the size shift is give instead of fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1487 * end shift. We now store these values in base_reg, fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1488 * and end shift, and when dumping the data we'll fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1489 * manipulate it for extracting both the length and fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1490 * base address */ fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1491 dest_tlv->base_reg = pieces->dbg_dest_tlv->cfg_reg; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1492 dest_tlv->end_shift = fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1493 pieces->dbg_dest_tlv->size_shift; fd527eb5d22936 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben Ami 2017-08-16 1494 } 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1495 } 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1496 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1497 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg.conf_tlv); i++) { 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1498 if (pieces->dbg_conf_tlv[i]) { 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1499 drv->fw.dbg.conf_tlv[i] = 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1500 kmemdup(pieces->dbg_conf_tlv[i], 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1501 pieces->dbg_conf_tlv_len[i], 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1502 GFP_KERNEL); a176e114ace4cc drivers/net/wireless/intel/iwlwifi/iwl-drv.c Chris Rorvick 2020-04-17 1503 if (!drv->fw.dbg.conf_tlv[i]) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1504 goto out_free_fw; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1505 } 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1506 } 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1507 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1508 memset(&trigger_tlv_sz, 0xff, sizeof(trigger_tlv_sz)); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1509 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1510 trigger_tlv_sz[FW_DBG_TRIGGER_MISSED_BEACONS] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1511 sizeof(struct iwl_fw_dbg_trigger_missed_bcon); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1512 trigger_tlv_sz[FW_DBG_TRIGGER_CHANNEL_SWITCH] = 0; 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1513 trigger_tlv_sz[FW_DBG_TRIGGER_FW_NOTIF] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1514 sizeof(struct iwl_fw_dbg_trigger_cmd); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1515 trigger_tlv_sz[FW_DBG_TRIGGER_MLME] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1516 sizeof(struct iwl_fw_dbg_trigger_mlme); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1517 trigger_tlv_sz[FW_DBG_TRIGGER_STATS] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1518 sizeof(struct iwl_fw_dbg_trigger_stats); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1519 trigger_tlv_sz[FW_DBG_TRIGGER_RSSI] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1520 sizeof(struct iwl_fw_dbg_trigger_low_rssi); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1521 trigger_tlv_sz[FW_DBG_TRIGGER_TXQ_TIMERS] = 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1522 sizeof(struct iwl_fw_dbg_trigger_txq_timer); 874c174eb9950a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-25 1523 trigger_tlv_sz[FW_DBG_TRIGGER_TIME_EVENT] = 874c174eb9950a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-25 1524 sizeof(struct iwl_fw_dbg_trigger_time_event); 4203263d8302be drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-04-15 1525 trigger_tlv_sz[FW_DBG_TRIGGER_BA] = 4203263d8302be drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-04-15 1526 sizeof(struct iwl_fw_dbg_trigger_ba); 1e8f1329aa6767 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2015-08-23 1527 trigger_tlv_sz[FW_DBG_TRIGGER_TDLS] = 1e8f1329aa6767 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2015-08-23 1528 sizeof(struct iwl_fw_dbg_trigger_tdls); 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1529 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1530 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg.trigger_tlv); i++) { d2709ad723ff2a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-01-29 1531 if (pieces->dbg_trigger_tlv[i]) { 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1532 /* 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1533 * If the trigger isn't long enough, WARN and exit. 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1534 * Someone is trying to debug something and he won't 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1535 * be able to catch the bug he is trying to chase. 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1536 * We'd better be noisy to be sure he knows what's 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1537 * going on. 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1538 */ 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1539 if (WARN_ON(pieces->dbg_trigger_tlv_len[i] < 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1540 (trigger_tlv_sz[i] + 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1541 sizeof(struct iwl_fw_dbg_trigger_tlv)))) 2841a2d3a1b4b4 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-03-19 1542 goto out_free_fw; 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1543 drv->fw.dbg.trigger_tlv_len[i] = d2709ad723ff2a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-01-29 1544 pieces->dbg_trigger_tlv_len[i]; 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1545 drv->fw.dbg.trigger_tlv[i] = d2709ad723ff2a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-01-29 1546 kmemdup(pieces->dbg_trigger_tlv[i], 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1547 drv->fw.dbg.trigger_tlv_len[i], d2709ad723ff2a drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2015-01-29 1548 GFP_KERNEL); 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1549 if (!drv->fw.dbg.trigger_tlv[i]) a6017b9030f280 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2016-03-14 1550 goto out_free_fw; a6017b9030f280 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2016-03-14 1551 } a6017b9030f280 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2016-03-14 1552 } a6017b9030f280 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Golan Ben-Ami 2016-03-14 1553 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1554 /* Now that we can no longer fail, copy information */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1555 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1556 drv->fw.dbg.mem_tlv = pieces->dbg_mem_tlv; 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1557 pieces->dbg_mem_tlv = NULL; 17b809c9b22e34 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2018-06-11 1558 drv->fw.dbg.n_mem_tlv = pieces->n_mem_tlv; 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1559 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1560 /* 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1561 * The (size - 16) / 12 formula is based on the information recorded 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1562 * for each event, which is of mode 1 (including timestamp) for all 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1563 * new microcodes that include this information. 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1564 */ 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1565 fw->init_evtlog_ptr = pieces->init_evtlog_ptr; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1566 if (pieces->init_evtlog_size) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1567 fw->init_evtlog_size = (pieces->init_evtlog_size - 16)/12; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1568 else 0692fe41b36159 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1569 fw->init_evtlog_size = 286ca8eb4d0a97 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2019-07-12 1570 drv->trans->trans_cfg->base_params->max_event_log_size; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1571 fw->init_errlog_ptr = pieces->init_errlog_ptr; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1572 fw->inst_evtlog_ptr = pieces->inst_evtlog_ptr; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1573 if (pieces->inst_evtlog_size) 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1574 fw->inst_evtlog_size = (pieces->inst_evtlog_size - 16)/12; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1575 else 0692fe41b36159 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1576 fw->inst_evtlog_size = 286ca8eb4d0a97 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Luca Coelho 2019-07-12 1577 drv->trans->trans_cfg->base_params->max_event_log_size; 490fefebb6db4c drivers/net/wireless/iwlwifi/iwl-drv.c Liad Kaufman 2014-09-16 1578 fw->inst_errlog_ptr = pieces->inst_errlog_ptr; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1579 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1580 /* 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1581 * figure out the offset of chain noise reset and gain commands 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1582 * base on the size of standard phy calibration commands table size 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1583 */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1584 if (fw->ucode_capa.standard_phy_calibration_size > 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1585 IWL_MAX_PHY_CALIBRATE_TBL_SIZE) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1586 fw->ucode_capa.standard_phy_calibration_size = 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1587 IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1588 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1589 /* We have our copies now, allow OS release its copies */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1590 release_firmware(ucode_raw); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1591 ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1592 mutex_lock(&iwlwifi_opmode_table_mtx); ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1593 switch (fw->type) { ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1594 case IWL_FW_DVM: cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1595 op = &iwlwifi_opmode_table[DVM_OP_MODE]; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1596 break; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1597 default: ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1598 WARN(1, "Invalid fw type %d\n", fw->type); 10a0472d1850a9 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Gustavo A. R. Silva 2020-11-20 1599 fallthrough; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1600 case IWL_FW_MVM: ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1601 op = &iwlwifi_opmode_table[MVM_OP_MODE]; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1602 break; ca221c9b946cd4 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-04-28 1603 } 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1604 2b2719c7b5bbe3 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-03-26 1605 IWL_INFO(drv, "loaded firmware version %s op_mode %s\n", 2b2719c7b5bbe3 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-03-26 1606 drv->fw.fw_version, op->name); 2b2719c7b5bbe3 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-03-26 1607 c03fe6d3b31c75 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-07-08 1608 iwl_dbg_tlv_load_bin(drv->trans->dev, drv->trans); c03fe6d3b31c75 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Shahar S Matityahu 2019-07-08 1609 cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1610 /* add this device to the list of devices using this op_mode */ cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1611 list_add_tail(&drv->list, &op->drv); cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1612 cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1613 if (op->ops) { 9da987ac2b88b4 drivers/net/wireless/iwlwifi/iwl-drv.c Meenakshi Venkataraman 2012-07-16 1614 drv->op_mode = _iwl_op_mode_start(drv, op); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1615 daf67ce8cffd14 drivers/net/wireless/iwlwifi/iwl-drv.c Dan Carpenter 2012-06-14 1616 if (!drv->op_mode) { daf67ce8cffd14 drivers/net/wireless/iwlwifi/iwl-drv.c Dan Carpenter 2012-06-14 1617 mutex_unlock(&iwlwifi_opmode_table_mtx); f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1618 goto out_unbind; daf67ce8cffd14 drivers/net/wireless/iwlwifi/iwl-drv.c Dan Carpenter 2012-06-14 1619 } cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1620 } else { d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1621 load_module = true; cc5f7e39761382 drivers/net/wireless/iwlwifi/iwl-drv.c Don Fry 2012-05-16 1622 } ff1ffb850b7ac6 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-06 1623 mutex_unlock(&iwlwifi_opmode_table_mtx); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1624 f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1625 /* f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1626 * Complete the firmware request last so that f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1627 * a driver unbind (stop) doesn't run while we f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1628 * are doing the start() above. f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1629 */ f69a23b795d6ee drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-05 1630 complete(&drv->request_firmware_complete); d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1631 d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1632 /* d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1633 * Load the module last so we don't block anything d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1634 * else from proceeding if the module fails to load d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1635 * or hangs loading. d4b10483223cf1 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-06-12 1636 */ 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1637 if (load_module) { 06a1e85e66bac2 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2017-02-28 1638 request_module("%s", op->name); 8edf3fd6eb0649 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-05-28 1639 #ifdef CONFIG_IWLWIFI_OPMODE_MODULAR 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1640 if (err) 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1641 IWL_ERR(drv, 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1642 "failed to load module %s (error %d), is dynamic loading enabled?\n", 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1643 op->name, err); 8edf3fd6eb0649 drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-05-28 1644 #endif 1618b2b02a3a0e drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2013-04-04 1645 } 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1646 goto free; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1647 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1648 try_again: 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1649 /* try next, if any */ 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1650 release_firmware(ucode_raw); 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1651 if (iwl_request_firmware(drv, false)) 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1652 goto out_unbind; 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1653 goto free; 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1654 75813bde1f671a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-05-16 1655 out_free_fw: 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1656 release_firmware(ucode_raw); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1657 out_unbind: 965974a631756a drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-06 1658 complete(&drv->request_firmware_complete); 93faaeea4f2873 drivers/net/wireless/iwlwifi/iwl-drv.c Emmanuel Grumbach 2012-03-22 1659 device_release_driver(drv->trans->dev); 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1660 free: 53d515ec677a19 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2017-02-28 1661 if (pieces) { eef187a7b8a144 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2016-10-25 1662 for (i = 0; i < ARRAY_SIZE(pieces->img); i++) eef187a7b8a144 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Sara Sharon 2016-10-25 1663 kfree(pieces->img[i].sec); 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1664 kfree(pieces->dbg_mem_tlv); 2ed1e019108252 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2016-10-20 1665 kfree(pieces); 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1666 } 53d515ec677a19 drivers/net/wireless/intel/iwlwifi/iwl-drv.c Johannes Berg 2017-02-28 1667 } 15854ef94f54ae drivers/net/wireless/iwlwifi/iwl-drv.c Johannes Berg 2012-03-05 1668 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 69552 bytes --]
next prev parent reply other threads:[~2021-11-10 14:15 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-11-09 17:30 [PATCH] iwlwifi: mvm: retry init flow if failed Luca Coelho 2021-11-09 17:33 ` Luca Coelho 2021-11-10 10:51 ` kernel test robot 2021-11-10 10:51 ` kernel test robot 2021-11-10 13:01 ` [PATCH v2] " Luca Coelho 2021-11-10 13:05 ` Luca Coelho 2021-11-22 18:38 ` Kalle Valo 2021-11-10 14:15 ` kernel test robot [this message] 2021-11-10 14:15 ` [PATCH] " kernel test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202111102225.2lAk9WxL-lkp@intel.com \ --to=lkp@intel.com \ --cc=kbuild-all@lists.01.org \ --cc=kvalo@codeaurora.org \ --cc=linux-wireless@vger.kernel.org \ --cc=luca@coelho.fi \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.