All of lore.kernel.org
 help / color / mirror / Atom feed
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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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, &param_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 --]

  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: link
Be 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.