Messages in this thread | | | Date | Mon, 4 Jan 2021 11:47:28 -0700 | From | Nathan Chancellor <> | Subject | Re: drivers/net/wireless/intel/iwlwifi/queue/tx.c:310:18: warning: result of comparison of constant 262140 with expression of type 'u16' (aka 'unsigned short') is always false |
| |
On Sun, Jan 03, 2021 at 09:51:17AM +0800, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master > head: 3516bd729358a2a9b090c1905bd2a3fa926e24c6 > commit: 0cd1ad2d7fd41e0de4969fd1dd0aa846c99830d1 iwlwifi: move all bus-independent TX functions to common code > date: 3 months ago > config: powerpc-randconfig-r001-20210103 (attached as .config) > compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 20670ba44066df0aae536822b7f7834ee3198c0d) > 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 > # install powerpc cross compiling tool for clang build > # apt-get install binutils-powerpc-linux-gnu > # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0cd1ad2d7fd41e0de4969fd1dd0aa846c99830d1 > git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git > git fetch --no-tags linus master > git checkout 0cd1ad2d7fd41e0de4969fd1dd0aa846c99830d1 > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@intel.com> > > All warnings (new ones prefixed by >>): > > >> drivers/net/wireless/intel/iwlwifi/queue/tx.c:310:18: warning: result of comparison of constant 262140 with expression of type 'u16' (aka 'unsigned short') is always false [-Wtautological-constant-out-of-range-compare] > if (WARN_ON(len > PAGE_SIZE - sizeof(void *))) { > ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > include/asm-generic/bug.h:188:25: note: expanded from macro 'WARN_ON' > int __ret_warn_on = !!(condition); \ > ^~~~~~~~~ > include/linux/compiler.h:56:47: note: expanded from macro 'if' > #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) > ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ > include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' > #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) > ^~~~ > >> drivers/net/wireless/intel/iwlwifi/queue/tx.c:310:18: warning: result of comparison of constant 262140 with expression of type 'u16' (aka 'unsigned short') is always false [-Wtautological-constant-out-of-range-compare] > if (WARN_ON(len > PAGE_SIZE - sizeof(void *))) { > ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > include/asm-generic/bug.h:188:25: note: expanded from macro 'WARN_ON' > int __ret_warn_on = !!(condition); \ > ^~~~~~~~~ > include/linux/compiler.h:56:47: note: expanded from macro 'if' > #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) > ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ > include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' > #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) > ~~~~~~~~~~~~~~~~~^~~~~ > include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' > (cond) ? \ > ^~~~ > 2 warnings generated.
This warning happens due to PAGE_SIZE being 256K, which is larger than u16.
$ rg "PPC_256K_PAGES|PPC_PAGE_SHIFT" .config CONFIG_PPC_256K_PAGES=y CONFIG_PPC_PAGE_SHIFT=18
On most configurations, which will use 64K or less, this check is valid. I am not sure how it should be dealt with, aside from increasing len to u32.
Cheers, Nathan
| |