All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: lib/bitfield_kunit.c:93:1: warning: the frame size of 4200 bytes is larger than 2048 bytes
Date: Wed, 17 Feb 2021 09:49:28 +0800	[thread overview]
Message-ID: <202102170918.0XPVCUfs-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 15790 bytes --]

Hi Vitor,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f40ddce88593482919761f74910f42f4b84c004b
commit: d2585f5164c298aaaed14c2c8d313cbe7bd5b253 lib: kunit: add bitfield test conversion to KUnit
date:   4 months ago
config: mips-randconfig-r016-20210216 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d2585f5164c298aaaed14c2c8d313cbe7bd5b253
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout d2585f5164c298aaaed14c2c8d313cbe7bd5b253
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

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 >>):

   lib/bitfield_kunit.c: In function 'test_bitfields_compile':
   lib/bitfield_kunit.c:136:21: warning: unsigned conversion from 'int' to 'u16' {aka 'short unsigned int'} changes value from '393216' to '0' [-Woverflow]
     136 |  u16_encode_bits(0, 0x60000);
         |                     ^~~~~~~
   At top level:
   lib/bitfield_kunit.c:129:20: warning: 'test_bitfields_compile' defined but not used [-Wunused-function]
     129 | static void __init test_bitfields_compile(struct kunit *context)
         |                    ^~~~~~~~~~~~~~~~~~~~~~
   lib/bitfield_kunit.c: In function 'test_bitfields_constants':
>> lib/bitfield_kunit.c:93:1: warning: the frame size of 4200 bytes is larger than 2048 bytes [-Wframe-larger-than=]
      93 | }
         | ^

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for SSB_EMBEDDED
   Depends on SSB && SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
   Selected by
   - BCM47XX_SSB && BCM47XX


vim +93 lib/bitfield_kunit.c

0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   10  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   11  #define CHECK_ENC_GET_U(tp, v, field, res) do {				\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   12  		{							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   13  			u##tp _res;					\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   14  									\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   15  			_res = u##tp##_encode_bits(v, field);		\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   16  			KUNIT_ASSERT_FALSE_MSG(context, _res != res,	\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   17  				       "u" #tp "_encode_bits(" #v ", " #field ") is 0x%llx != " #res "\n",	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   18  				       (u64)_res);			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   19  			KUNIT_ASSERT_FALSE(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   20  				   u##tp##_get_bits(_res, field) != v);	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   21  		}							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   22  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   23  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   24  #define CHECK_ENC_GET_LE(tp, v, field, res) do {			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   25  		{							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   26  			__le##tp _res;					\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   27  									\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   28  			_res = le##tp##_encode_bits(v, field);		\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   29  			KUNIT_ASSERT_FALSE_MSG(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   30  				       _res != cpu_to_le##tp(res),	\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   31  				       "le" #tp "_encode_bits(" #v ", " #field ") is 0x%llx != 0x%llx",\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   32  				       (u64)le##tp##_to_cpu(_res),	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   33  				       (u64)(res));			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   34  			KUNIT_ASSERT_FALSE(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   35  				   le##tp##_get_bits(_res, field) != v);\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   36  		}							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   37  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   38  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   39  #define CHECK_ENC_GET_BE(tp, v, field, res) do {			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   40  		{							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   41  			__be##tp _res;					\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   42  									\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   43  			_res = be##tp##_encode_bits(v, field);		\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   44  			KUNIT_ASSERT_FALSE_MSG(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   45  				       _res != cpu_to_be##tp(res),	\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   46  				       "be" #tp "_encode_bits(" #v ", " #field ") is 0x%llx != 0x%llx",	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   47  				       (u64)be##tp##_to_cpu(_res),	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   48  				       (u64)(res));			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   49  			KUNIT_ASSERT_FALSE(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   50  				   be##tp##_get_bits(_res, field) != v);\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   51  		}							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   52  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   53  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   54  #define CHECK_ENC_GET(tp, v, field, res) do {				\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   55  		CHECK_ENC_GET_U(tp, v, field, res);			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   56  		CHECK_ENC_GET_LE(tp, v, field, res);			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   57  		CHECK_ENC_GET_BE(tp, v, field, res);			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   58  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   59  
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   60  static void __init test_bitfields_constants(struct kunit *context)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   61  {
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   62  	/*
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   63  	 * NOTE
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   64  	 * This whole function compiles (or at least should, if everything
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   65  	 * is going according to plan) to nothing after optimisation.
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   66  	 */
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   67  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   68  	CHECK_ENC_GET(16,  1, 0x000f, 0x0001);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   69  	CHECK_ENC_GET(16,  3, 0x00f0, 0x0030);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   70  	CHECK_ENC_GET(16,  5, 0x0f00, 0x0500);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   71  	CHECK_ENC_GET(16,  7, 0xf000, 0x7000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   72  	CHECK_ENC_GET(16, 14, 0x000f, 0x000e);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   73  	CHECK_ENC_GET(16, 15, 0x00f0, 0x00f0);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   74  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   75  	CHECK_ENC_GET_U(8,  1, 0x0f, 0x01);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   76  	CHECK_ENC_GET_U(8,  3, 0xf0, 0x30);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   77  	CHECK_ENC_GET_U(8, 14, 0x0f, 0x0e);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   78  	CHECK_ENC_GET_U(8, 15, 0xf0, 0xf0);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   79  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   80  	CHECK_ENC_GET(32,  1, 0x00000f00, 0x00000100);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   81  	CHECK_ENC_GET(32,  3, 0x0000f000, 0x00003000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   82  	CHECK_ENC_GET(32,  5, 0x000f0000, 0x00050000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   83  	CHECK_ENC_GET(32,  7, 0x00f00000, 0x00700000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   84  	CHECK_ENC_GET(32, 14, 0x0f000000, 0x0e000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   85  	CHECK_ENC_GET(32, 15, 0xf0000000, 0xf0000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   86  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   87  	CHECK_ENC_GET(64,  1, 0x00000f0000000000ull, 0x0000010000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   88  	CHECK_ENC_GET(64,  3, 0x0000f00000000000ull, 0x0000300000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   89  	CHECK_ENC_GET(64,  5, 0x000f000000000000ull, 0x0005000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   90  	CHECK_ENC_GET(64,  7, 0x00f0000000000000ull, 0x0070000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   91  	CHECK_ENC_GET(64, 14, 0x0f00000000000000ull, 0x0e00000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   92  	CHECK_ENC_GET(64, 15, 0xf000000000000000ull, 0xf000000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  @93  }
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   94  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   95  #define CHECK(tp, mask) do {						\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   96  		u64 v;							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   97  									\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   98  		for (v = 0; v < 1 << hweight32(mask); v++)		\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   99  			KUNIT_ASSERT_FALSE(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  100  				tp##_encode_bits(v, mask) != v << __ffs64(mask));\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  101  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  102  
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  103  static void __init test_bitfields_variables(struct kunit *context)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  104  {
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  105  	CHECK(u8, 0x0f);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  106  	CHECK(u8, 0xf0);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  107  	CHECK(u8, 0x38);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  108  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  109  	CHECK(u16, 0x0038);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  110  	CHECK(u16, 0x0380);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  111  	CHECK(u16, 0x3800);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  112  	CHECK(u16, 0x8000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  113  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  114  	CHECK(u32, 0x80000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  115  	CHECK(u32, 0x7f000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  116  	CHECK(u32, 0x07e00000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  117  	CHECK(u32, 0x00018000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  118  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  119  	CHECK(u64, 0x8000000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  120  	CHECK(u64, 0x7f00000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  121  	CHECK(u64, 0x0001800000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  122  	CHECK(u64, 0x0000000080000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  123  	CHECK(u64, 0x000000007f000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  124  	CHECK(u64, 0x0000000018000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  125  	CHECK(u64, 0x0000001f8000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  126  }
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  127  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  128  
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  129  static void __init test_bitfields_compile(struct kunit *context)
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  130  {
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  131  	/* these should fail compilation */
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  132  	CHECK_ENC_GET(16, 16, 0x0f00, 0x1000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  133  	u32_encode_bits(7, 0x06000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  134  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  135  	/* this should at least give a warning */
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20 @136  	u16_encode_bits(0, 0x60000);
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  137  }
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  138  

:::::: The code@line 93 was first introduced by commit
:::::: 0e2dc70e3d0d503b0cc9c5f74db3eb6db52c9e22 bitfield: add tests

:::::: TO: Johannes Berg <johannes@sipsolutions.net>
:::::: CC: Kalle Valo <kvalo@codeaurora.org>

---
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: 24104 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Vitor Massaru Iha <vitor@massaru.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Shuah Khan <skhan@linuxfoundation.org>,
	Brendan Higgins <brendanhiggins@google.com>
Subject: lib/bitfield_kunit.c:93:1: warning: the frame size of 4200 bytes is larger than 2048 bytes
Date: Wed, 17 Feb 2021 09:49:28 +0800	[thread overview]
Message-ID: <202102170918.0XPVCUfs-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 15605 bytes --]

Hi Vitor,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f40ddce88593482919761f74910f42f4b84c004b
commit: d2585f5164c298aaaed14c2c8d313cbe7bd5b253 lib: kunit: add bitfield test conversion to KUnit
date:   4 months ago
config: mips-randconfig-r016-20210216 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d2585f5164c298aaaed14c2c8d313cbe7bd5b253
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout d2585f5164c298aaaed14c2c8d313cbe7bd5b253
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

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 >>):

   lib/bitfield_kunit.c: In function 'test_bitfields_compile':
   lib/bitfield_kunit.c:136:21: warning: unsigned conversion from 'int' to 'u16' {aka 'short unsigned int'} changes value from '393216' to '0' [-Woverflow]
     136 |  u16_encode_bits(0, 0x60000);
         |                     ^~~~~~~
   At top level:
   lib/bitfield_kunit.c:129:20: warning: 'test_bitfields_compile' defined but not used [-Wunused-function]
     129 | static void __init test_bitfields_compile(struct kunit *context)
         |                    ^~~~~~~~~~~~~~~~~~~~~~
   lib/bitfield_kunit.c: In function 'test_bitfields_constants':
>> lib/bitfield_kunit.c:93:1: warning: the frame size of 4200 bytes is larger than 2048 bytes [-Wframe-larger-than=]
      93 | }
         | ^

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for SSB_EMBEDDED
   Depends on SSB && SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
   Selected by
   - BCM47XX_SSB && BCM47XX


vim +93 lib/bitfield_kunit.c

0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   10  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   11  #define CHECK_ENC_GET_U(tp, v, field, res) do {				\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   12  		{							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   13  			u##tp _res;					\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   14  									\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   15  			_res = u##tp##_encode_bits(v, field);		\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   16  			KUNIT_ASSERT_FALSE_MSG(context, _res != res,	\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   17  				       "u" #tp "_encode_bits(" #v ", " #field ") is 0x%llx != " #res "\n",	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   18  				       (u64)_res);			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   19  			KUNIT_ASSERT_FALSE(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   20  				   u##tp##_get_bits(_res, field) != v);	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   21  		}							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   22  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   23  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   24  #define CHECK_ENC_GET_LE(tp, v, field, res) do {			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   25  		{							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   26  			__le##tp _res;					\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   27  									\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   28  			_res = le##tp##_encode_bits(v, field);		\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   29  			KUNIT_ASSERT_FALSE_MSG(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   30  				       _res != cpu_to_le##tp(res),	\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   31  				       "le" #tp "_encode_bits(" #v ", " #field ") is 0x%llx != 0x%llx",\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   32  				       (u64)le##tp##_to_cpu(_res),	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   33  				       (u64)(res));			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   34  			KUNIT_ASSERT_FALSE(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   35  				   le##tp##_get_bits(_res, field) != v);\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   36  		}							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   37  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   38  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   39  #define CHECK_ENC_GET_BE(tp, v, field, res) do {			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   40  		{							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   41  			__be##tp _res;					\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   42  									\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   43  			_res = be##tp##_encode_bits(v, field);		\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   44  			KUNIT_ASSERT_FALSE_MSG(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   45  				       _res != cpu_to_be##tp(res),	\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   46  				       "be" #tp "_encode_bits(" #v ", " #field ") is 0x%llx != 0x%llx",	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   47  				       (u64)be##tp##_to_cpu(_res),	\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   48  				       (u64)(res));			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   49  			KUNIT_ASSERT_FALSE(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   50  				   be##tp##_get_bits(_res, field) != v);\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   51  		}							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   52  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   53  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   54  #define CHECK_ENC_GET(tp, v, field, res) do {				\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   55  		CHECK_ENC_GET_U(tp, v, field, res);			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   56  		CHECK_ENC_GET_LE(tp, v, field, res);			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   57  		CHECK_ENC_GET_BE(tp, v, field, res);			\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   58  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   59  
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   60  static void __init test_bitfields_constants(struct kunit *context)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   61  {
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   62  	/*
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   63  	 * NOTE
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   64  	 * This whole function compiles (or at least should, if everything
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   65  	 * is going according to plan) to nothing after optimisation.
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   66  	 */
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   67  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   68  	CHECK_ENC_GET(16,  1, 0x000f, 0x0001);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   69  	CHECK_ENC_GET(16,  3, 0x00f0, 0x0030);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   70  	CHECK_ENC_GET(16,  5, 0x0f00, 0x0500);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   71  	CHECK_ENC_GET(16,  7, 0xf000, 0x7000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   72  	CHECK_ENC_GET(16, 14, 0x000f, 0x000e);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   73  	CHECK_ENC_GET(16, 15, 0x00f0, 0x00f0);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   74  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   75  	CHECK_ENC_GET_U(8,  1, 0x0f, 0x01);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   76  	CHECK_ENC_GET_U(8,  3, 0xf0, 0x30);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   77  	CHECK_ENC_GET_U(8, 14, 0x0f, 0x0e);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   78  	CHECK_ENC_GET_U(8, 15, 0xf0, 0xf0);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   79  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   80  	CHECK_ENC_GET(32,  1, 0x00000f00, 0x00000100);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   81  	CHECK_ENC_GET(32,  3, 0x0000f000, 0x00003000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   82  	CHECK_ENC_GET(32,  5, 0x000f0000, 0x00050000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   83  	CHECK_ENC_GET(32,  7, 0x00f00000, 0x00700000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   84  	CHECK_ENC_GET(32, 14, 0x0f000000, 0x0e000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   85  	CHECK_ENC_GET(32, 15, 0xf0000000, 0xf0000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   86  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   87  	CHECK_ENC_GET(64,  1, 0x00000f0000000000ull, 0x0000010000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   88  	CHECK_ENC_GET(64,  3, 0x0000f00000000000ull, 0x0000300000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   89  	CHECK_ENC_GET(64,  5, 0x000f000000000000ull, 0x0005000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   90  	CHECK_ENC_GET(64,  7, 0x00f0000000000000ull, 0x0070000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   91  	CHECK_ENC_GET(64, 14, 0x0f00000000000000ull, 0x0e00000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   92  	CHECK_ENC_GET(64, 15, 0xf000000000000000ull, 0xf000000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  @93  }
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   94  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   95  #define CHECK(tp, mask) do {						\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   96  		u64 v;							\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   97  									\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20   98  		for (v = 0; v < 1 << hweight32(mask); v++)		\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29   99  			KUNIT_ASSERT_FALSE(context,			\
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  100  				tp##_encode_bits(v, mask) != v << __ffs64(mask));\
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  101  	} while (0)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  102  
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  103  static void __init test_bitfields_variables(struct kunit *context)
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  104  {
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  105  	CHECK(u8, 0x0f);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  106  	CHECK(u8, 0xf0);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  107  	CHECK(u8, 0x38);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  108  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  109  	CHECK(u16, 0x0038);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  110  	CHECK(u16, 0x0380);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  111  	CHECK(u16, 0x3800);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  112  	CHECK(u16, 0x8000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  113  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  114  	CHECK(u32, 0x80000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  115  	CHECK(u32, 0x7f000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  116  	CHECK(u32, 0x07e00000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  117  	CHECK(u32, 0x00018000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  118  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  119  	CHECK(u64, 0x8000000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  120  	CHECK(u64, 0x7f00000000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  121  	CHECK(u64, 0x0001800000000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  122  	CHECK(u64, 0x0000000080000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  123  	CHECK(u64, 0x000000007f000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  124  	CHECK(u64, 0x0000000018000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  125  	CHECK(u64, 0x0000001f8000000ull);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  126  }
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  127  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  128  
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  129  static void __init test_bitfields_compile(struct kunit *context)
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  130  {
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  131  	/* these should fail compilation */
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  132  	CHECK_ENC_GET(16, 16, 0x0f00, 0x1000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  133  	u32_encode_bits(7, 0x06000000);
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  134  
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20  135  	/* this should at least give a warning */
0e2dc70e3d0d50 lib/test_bitfield.c  Johannes Berg     2018-06-20 @136  	u16_encode_bits(0, 0x60000);
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  137  }
d2585f5164c298 lib/bitfield_kunit.c Vitor Massaru Iha 2020-07-29  138  

:::::: The code at line 93 was first introduced by commit
:::::: 0e2dc70e3d0d503b0cc9c5f74db3eb6db52c9e22 bitfield: add tests

:::::: TO: Johannes Berg <johannes@sipsolutions.net>
:::::: CC: Kalle Valo <kvalo@codeaurora.org>

---
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: 24104 bytes --]

             reply	other threads:[~2021-02-17  1:49 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-17  1:49 kernel test robot [this message]
2021-02-17  1:49 ` lib/bitfield_kunit.c:93:1: warning: the frame size of 4200 bytes is larger than 2048 bytes 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=202102170918.0XPVCUfs-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /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.