lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Tue, 19 May 2020 19:50:46 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Rikard Falkeborn <rikard.falkeborn@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Andrew Morton <akpm@...ux-foundation.org>,
        Linux Memory Management List <linux-mm@...ck.org>,
        Masahiro Yamada <yamada.masahiro@...ionext.com>,
        Kees Cook <keescook@...omium.org>
Subject: drivers/clk/clk-stm32f4.c:871:6: note: in expansion of macro
 'GENMASK_ULL'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   642b151f45dd54809ea00ecd3976a56c1ec9b53d
commit: 295bcca84916cb5079140a89fccb472bb8d1f6e2 linux/bits.h: add compile time sanity check of GENMASK inputs
date:   6 weeks ago
config: arm-randconfig-r016-20200519 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 295bcca84916cb5079140a89fccb472bb8d1f6e2
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@...el.com>

All warnings (new ones prefixed by >>, old ones prefixed by <<):

In file included from include/linux/bits.h:23,
from include/linux/bitops.h:5,
from include/linux/of.h:15,
from include/linux/clk-provider.h:9,
from drivers/clk/clk-stm32f4.c:8:
drivers/clk/clk-stm32f4.c: In function 'stm32f4_rcc_lookup_clk_idx':
include/linux/bits.h:26:28: warning: comparison is always false due to limited range of data type [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                            ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
|                                                              ^
include/linux/bits.h:45:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
45 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK_ULL(h, l))
|   ^~~~~~~~~~~~~~~~~~~
>> drivers/clk/clk-stm32f4.c:871:6: note: in expansion of macro 'GENMASK_ULL'
871 |      GENMASK_ULL(secondary % BITS_PER_LONG_LONG, 0);
|      ^~~~~~~~~~~
include/linux/bits.h:26:40: warning: comparison is always false due to limited range of data type [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                                        ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
|                                                              ^
include/linux/bits.h:45:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
45 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK_ULL(h, l))
|   ^~~~~~~~~~~~~~~~~~~
>> drivers/clk/clk-stm32f4.c:871:6: note: in expansion of macro 'GENMASK_ULL'
871 |      GENMASK_ULL(secondary % BITS_PER_LONG_LONG, 0);
|      ^~~~~~~~~~~
--
In file included from include/linux/bits.h:23,
from include/linux/bitops.h:5,
from include/linux/kernel.h:12,
from include/linux/mfd/syscon/atmel-smc.h:14,
from drivers/mfd/atmel-smc.c:11:
drivers/mfd/atmel-smc.c: In function 'atmel_smc_cs_encode_ncycles':
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                            ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
|                                                              ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
>> drivers/mfd/atmel-smc.c:49:25: note: in expansion of macro 'GENMASK'
49 |  unsigned int lsbmask = GENMASK(msbpos - 1, 0);
|                         ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                                        ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
|                                                              ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
>> drivers/mfd/atmel-smc.c:49:25: note: in expansion of macro 'GENMASK'
49 |  unsigned int lsbmask = GENMASK(msbpos - 1, 0);
|                         ^~~~~~~
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                            ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
|                                                              ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
drivers/mfd/atmel-smc.c:50:25: note: in expansion of macro 'GENMASK'
50 |  unsigned int msbmask = GENMASK(msbwidth - 1, 0);
|                         ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                                        ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
|                                                              ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
drivers/mfd/atmel-smc.c:50:25: note: in expansion of macro 'GENMASK'
50 |  unsigned int msbmask = GENMASK(msbwidth - 1, 0);
|                         ^~~~~~~
--
In file included from include/linux/byteorder/little_endian.h:5,
from arch/arm/include/uapi/asm/byteorder.h:22,
from include/asm-generic/bitops/le.h:6,
from arch/arm/include/asm/bitops.h:268,
from include/linux/bitops.h:29,
from include/linux/kernel.h:12,
from include/linux/clk.h:13,
from drivers/crypto/inside-secure/safexcel.c:8:
drivers/crypto/inside-secure/safexcel.c: In function 'safexcel_hw_init':
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                            ^
include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__cpu_to_le32'
33 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
|                                                   ^
>> arch/arm/include/asm/io.h:307:36: note: in expansion of macro 'writel_relaxed'
307 | #define writel(v,c)  ({ __iowmb(); writel_relaxed(v,c); })
|                                    ^~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:648:4: note: in expansion of macro 'writel'
648 |    writel(EIP197_HIA_RA_PE_CTRL_EN |
|    ^~~~~~
include/linux/bits.h:25:3: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
25 |  (BUILD_BUG_ON_ZERO(__builtin_choose_expr(          |   ^~~~~~~~~~~~~~~~~
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:649:11: note: in expansion of macro 'GENMASK'
649 |           GENMASK(priv->config.rings - 1, 0),
|           ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                                        ^
include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__cpu_to_le32'
33 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
|                                                   ^
>> arch/arm/include/asm/io.h:307:36: note: in expansion of macro 'writel_relaxed'
307 | #define writel(v,c)  ({ __iowmb(); writel_relaxed(v,c); })
|                                    ^~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:648:4: note: in expansion of macro 'writel'
648 |    writel(EIP197_HIA_RA_PE_CTRL_EN |
|    ^~~~~~
include/linux/bits.h:25:3: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
25 |  (BUILD_BUG_ON_ZERO(__builtin_choose_expr(          |   ^~~~~~~~~~~~~~~~~
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:649:11: note: in expansion of macro 'GENMASK'
649 |           GENMASK(priv->config.rings - 1, 0),
|           ^~~~~~~
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                            ^
include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__cpu_to_le32'
33 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
|                                                   ^
>> arch/arm/include/asm/io.h:307:36: note: in expansion of macro 'writel_relaxed'
307 | #define writel(v,c)  ({ __iowmb(); writel_relaxed(v,c); })
|                                    ^~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:757:3: note: in expansion of macro 'writel'
757 |   writel(EIP197_DxE_THR_CTRL_EN | GENMASK(priv->config.rings - 1, 0),
|   ^~~~~~
include/linux/bits.h:25:3: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
25 |  (BUILD_BUG_ON_ZERO(__builtin_choose_expr(          |   ^~~~~~~~~~~~~~~~~
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:757:35: note: in expansion of macro 'GENMASK'
757 |   writel(EIP197_DxE_THR_CTRL_EN | GENMASK(priv->config.rings - 1, 0),
|                                   ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                                        ^
include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__cpu_to_le32'
33 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
|                                                   ^
>> arch/arm/include/asm/io.h:307:36: note: in expansion of macro 'writel_relaxed'
307 | #define writel(v,c)  ({ __iowmb(); writel_relaxed(v,c); })
|                                    ^~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:757:3: note: in expansion of macro 'writel'
757 |   writel(EIP197_DxE_THR_CTRL_EN | GENMASK(priv->config.rings - 1, 0),
|   ^~~~~~
include/linux/bits.h:25:3: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
25 |  (BUILD_BUG_ON_ZERO(__builtin_choose_expr(          |   ^~~~~~~~~~~~~~~~~
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:757:35: note: in expansion of macro 'GENMASK'
757 |   writel(EIP197_DxE_THR_CTRL_EN | GENMASK(priv->config.rings - 1, 0),
|                                   ^~~~~~~
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                            ^
include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__cpu_to_le32'
33 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
|                                                   ^
>> arch/arm/include/asm/io.h:307:36: note: in expansion of macro 'writel_relaxed'
307 | #define writel(v,c)  ({ __iowmb(); writel_relaxed(v,c); })
|                                    ^~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:761:3: note: in expansion of macro 'writel'
761 |   writel(EIP197_DxE_THR_CTRL_EN | GENMASK(priv->config.rings - 1, 0),
|   ^~~~~~
include/linux/bits.h:25:3: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
25 |  (BUILD_BUG_ON_ZERO(__builtin_choose_expr(          |   ^~~~~~~~~~~~~~~~~
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:761:35: note: in expansion of macro 'GENMASK'
761 |   writel(EIP197_DxE_THR_CTRL_EN | GENMASK(priv->config.rings - 1, 0),
|                                   ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                                        ^
include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__cpu_to_le32'
33 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
|                                                   ^
>> arch/arm/include/asm/io.h:307:36: note: in expansion of macro 'writel_relaxed'
307 | #define writel(v,c)  ({ __iowmb(); writel_relaxed(v,c); })
|                                    ^~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:761:3: note: in expansion of macro 'writel'
761 |   writel(EIP197_DxE_THR_CTRL_EN | GENMASK(priv->config.rings - 1, 0),
|   ^~~~~~
include/linux/bits.h:25:3: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
25 |  (BUILD_BUG_ON_ZERO(__builtin_choose_expr(          |   ^~~~~~~~~~~~~~~~~
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:761:35: note: in expansion of macro 'GENMASK'
761 |   writel(EIP197_DxE_THR_CTRL_EN | GENMASK(priv->config.rings - 1, 0),
|                                   ^~~~~~~

vim +/GENMASK_ULL +871 drivers/clk/clk-stm32f4.c

358bdf892f6bfa Daniel Thompson   2015-06-10  846  
358bdf892f6bfa Daniel Thompson   2015-06-10  847  /*
358bdf892f6bfa Daniel Thompson   2015-06-10  848   * Converts the primary and secondary indices (as they appear in DT) to an
358bdf892f6bfa Daniel Thompson   2015-06-10  849   * offset into our struct clock array.
358bdf892f6bfa Daniel Thompson   2015-06-10  850   */
358bdf892f6bfa Daniel Thompson   2015-06-10  851  static int stm32f4_rcc_lookup_clk_idx(u8 primary, u8 secondary)
358bdf892f6bfa Daniel Thompson   2015-06-10  852  {
a064a07f72e92c Gabriel Fernandez 2016-10-21  853  	u64 table[MAX_GATE_MAP];
358bdf892f6bfa Daniel Thompson   2015-06-10  854  
358bdf892f6bfa Daniel Thompson   2015-06-10  855  	if (primary == 1) {
88c9b70bb2b218 Gabriel Fernandez 2017-01-06  856  		if (WARN_ON(secondary >= stm32fx_end_primary_clk))
358bdf892f6bfa Daniel Thompson   2015-06-10  857  			return -EINVAL;
358bdf892f6bfa Daniel Thompson   2015-06-10  858  		return secondary;
358bdf892f6bfa Daniel Thompson   2015-06-10  859  	}
358bdf892f6bfa Daniel Thompson   2015-06-10  860  
a064a07f72e92c Gabriel Fernandez 2016-10-21  861  	memcpy(table, stm32f4_gate_map, sizeof(table));
358bdf892f6bfa Daniel Thompson   2015-06-10  862  
358bdf892f6bfa Daniel Thompson   2015-06-10  863  	/* only bits set in table can be used as indices */
15ab38273d21a4 Daniel Thompson   2015-06-28  864  	if (WARN_ON(secondary >= BITS_PER_BYTE * sizeof(table) ||
358bdf892f6bfa Daniel Thompson   2015-06-10  865  		    0 == (table[BIT_ULL_WORD(secondary)] &
358bdf892f6bfa Daniel Thompson   2015-06-10  866  			  BIT_ULL_MASK(secondary))))
358bdf892f6bfa Daniel Thompson   2015-06-10  867  		return -EINVAL;
358bdf892f6bfa Daniel Thompson   2015-06-10  868  
358bdf892f6bfa Daniel Thompson   2015-06-10  869  	/* mask out bits above our current index */
358bdf892f6bfa Daniel Thompson   2015-06-10  870  	table[BIT_ULL_WORD(secondary)] &=
358bdf892f6bfa Daniel Thompson   2015-06-10 @871  	    GENMASK_ULL(secondary % BITS_PER_LONG_LONG, 0);
358bdf892f6bfa Daniel Thompson   2015-06-10  872  
88c9b70bb2b218 Gabriel Fernandez 2017-01-06  873  	return stm32fx_end_primary_clk - 1 + hweight64(table[0]) +
358bdf892f6bfa Daniel Thompson   2015-06-10  874  	       (BIT_ULL_WORD(secondary) >= 1 ? hweight64(table[1]) : 0) +
358bdf892f6bfa Daniel Thompson   2015-06-10  875  	       (BIT_ULL_WORD(secondary) >= 2 ? hweight64(table[2]) : 0);
358bdf892f6bfa Daniel Thompson   2015-06-10  876  }
358bdf892f6bfa Daniel Thompson   2015-06-10  877  

:::::: The code at line 871 was first introduced by commit
:::::: 358bdf892f6bfacf20884b54a35ab038321f06f9 clk: stm32: Add clock driver for STM32F4[23]xxx devices

:::::: TO: Daniel Thompson <daniel.thompson@...aro.org>
:::::: CC: Stephen Boyd <sboyd@...eaurora.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (27586 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ