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:   Wed, 3 Feb 2021 06:31:58 +0800
From:   kernel test robot <lkp@...el.com>
To:     "Liam R. Howlett" <Liam.Howlett@...cle.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        "Matthew Wilcox (Oracle)" <willy@...radead.org>
Subject: [rcu:willy-maple 125/202] include/linux/maple_tree.h:79:22: error:
 'MAPLE_RANGE64_SLOTS' undeclared here (not in a function)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git willy-maple
head:   7e346d2845b4bd77663394f39fa70456e0084c86
commit: 824aa5e4af0be646da193e90e3383651b93f1c8d [125/202] Maple Tree: Add new data structure
config: m68k-randconfig-r006-20210202 (attached as .config)
compiler: m68k-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/paulmck/linux-rcu.git/commit/?id=824aa5e4af0be646da193e90e3383651b93f1c8d
        git remote add rcu https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
        git fetch --no-tags rcu willy-maple
        git checkout 824aa5e4af0be646da193e90e3383651b93f1c8d
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

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

All errors (new ones prefixed by >>):

   In file included from lib/maple_tree.c:9:
>> include/linux/maple_tree.h:79:22: error: 'MAPLE_RANGE64_SLOTS' undeclared here (not in a function)
      79 |  unsigned long pivot[MAPLE_RANGE64_SLOTS - 1];
         |                      ^~~~~~~~~~~~~~~~~~~
>> include/linux/maple_tree.h:85:22: error: 'MAPLE_ARANGE64_SLOTS' undeclared here (not in a function)
      85 |  unsigned long pivot[MAPLE_ARANGE64_SLOTS - 1];
         |                      ^~~~~~~~~~~~~~~~~~~~
>> include/linux/maple_tree.h:91:28: error: 'MAPLE_NODE_SLOTS' undeclared here (not in a function); did you mean 'MAPLE_ALLOC_SLOTS'?
      91 | #define MAPLE_ALLOC_SLOTS (MAPLE_NODE_SLOTS - 1)
         |                            ^~~~~~~~~~~~~~~~
   include/linux/maple_tree.h:96:27: note: in expansion of macro 'MAPLE_ALLOC_SLOTS'
      96 |  struct maple_alloc *slot[MAPLE_ALLOC_SLOTS];
         |                           ^~~~~~~~~~~~~~~~~
   lib/maple_tree.c:40:19: warning: initialization of 'unsigned char' from 'const long unsigned int *' makes integer from pointer without a cast [-Wint-conversion]
      40 |  [maple_dense]  = MAPLE_NODE_SLOTS,
         |                   ^~~~~~~~~~~~~~~~
   lib/maple_tree.c:40:19: note: (near initialization for 'mt_slots[0]')
   lib/maple_tree.c:40:19: error: initializer element is not constant
   lib/maple_tree.c:40:19: note: (near initialization for 'mt_slots[0]')
   lib/maple_tree.c:41:21: warning: initialization of 'unsigned char' from 'const long unsigned int *' makes integer from pointer without a cast [-Wint-conversion]
      41 |  [maple_leaf_64]  = MAPLE_RANGE64_SLOTS,
         |                     ^~~~~~~~~~~~~~~~~~~
   lib/maple_tree.c:41:21: note: (near initialization for 'mt_slots[1]')
   lib/maple_tree.c:41:21: error: initializer element is not constant
   lib/maple_tree.c:41:21: note: (near initialization for 'mt_slots[1]')
   lib/maple_tree.c:42:21: warning: initialization of 'unsigned char' from 'const long unsigned int *' makes integer from pointer without a cast [-Wint-conversion]
      42 |  [maple_range_64] = MAPLE_RANGE64_SLOTS,
         |                     ^~~~~~~~~~~~~~~~~~~
   lib/maple_tree.c:42:21: note: (near initialization for 'mt_slots[2]')
   lib/maple_tree.c:42:21: error: initializer element is not constant
   lib/maple_tree.c:42:21: note: (near initialization for 'mt_slots[2]')
   lib/maple_tree.c:43:22: warning: initialization of 'unsigned char' from 'const long unsigned int *' makes integer from pointer without a cast [-Wint-conversion]
      43 |  [maple_arange_64] = MAPLE_ARANGE64_SLOTS,
         |                      ^~~~~~~~~~~~~~~~~~~~
   lib/maple_tree.c:43:22: note: (near initialization for 'mt_slots[3]')
   lib/maple_tree.c:43:22: error: initializer element is not constant
   lib/maple_tree.c:43:22: note: (near initialization for 'mt_slots[3]')
   lib/maple_tree.c:49:21: warning: initialization of 'unsigned char' from 'const unsigned char *' makes integer from pointer without a cast [-Wint-conversion]
      49 |  [maple_leaf_64]  = MAPLE_RANGE64_SLOTS - 1,
         |                     ^~~~~~~~~~~~~~~~~~~
   lib/maple_tree.c:49:21: note: (near initialization for 'mt_pivots[1]')
   lib/maple_tree.c:49:21: error: initializer element is not constant
   lib/maple_tree.c:49:21: note: (near initialization for 'mt_pivots[1]')
   lib/maple_tree.c:50:21: warning: initialization of 'unsigned char' from 'const unsigned char *' makes integer from pointer without a cast [-Wint-conversion]
      50 |  [maple_range_64] = MAPLE_RANGE64_SLOTS - 1,
         |                     ^~~~~~~~~~~~~~~~~~~
   lib/maple_tree.c:50:21: note: (near initialization for 'mt_pivots[2]')
   lib/maple_tree.c:50:21: error: initializer element is not constant
   lib/maple_tree.c:50:21: note: (near initialization for 'mt_pivots[2]')
   lib/maple_tree.c:51:22: warning: initialization of 'unsigned char' from 'const unsigned char *' makes integer from pointer without a cast [-Wint-conversion]
      51 |  [maple_arange_64] = MAPLE_ARANGE64_SLOTS - 1,
         |                      ^~~~~~~~~~~~~~~~~~~~
   lib/maple_tree.c:51:22: note: (near initialization for 'mt_pivots[3]')
   lib/maple_tree.c:51:22: error: initializer element is not constant
   lib/maple_tree.c:51:22: note: (near initialization for 'mt_pivots[3]')
   lib/maple_tree.c:56:36: error: invalid operands to binary / (have 'const unsigned char *' and 'int')
      56 |  [maple_dense]  = MAPLE_NODE_SLOTS / 2,
         |                   ~~~~~~~~~~~~~~~~ ^
         |                   |
         |                   const unsigned char *
   lib/maple_tree.c:56:19: warning: initialization of 'unsigned char' from 'const unsigned char *' makes integer from pointer without a cast [-Wint-conversion]
      56 |  [maple_dense]  = MAPLE_NODE_SLOTS / 2,
         |                   ^~~~~~~~~~~~~~~~
   lib/maple_tree.c:56:19: note: (near initialization for 'mt_min_slots[0]')
   lib/maple_tree.c:56:19: error: initializer element is not constant
   lib/maple_tree.c:56:19: note: (near initialization for 'mt_min_slots[0]')
   lib/maple_tree.c:57:42: error: invalid operands to binary / (have 'const unsigned char *' and 'int')
      57 |  [maple_leaf_64]  = (MAPLE_RANGE64_SLOTS / 2) - 2,
         |                      ~~~~~~~~~~~~~~~~~~~ ^
         |                      |
         |                      const unsigned char *
   lib/maple_tree.c:57:21: warning: initialization of 'unsigned char' from 'const unsigned char *' makes integer from pointer without a cast [-Wint-conversion]
      57 |  [maple_leaf_64]  = (MAPLE_RANGE64_SLOTS / 2) - 2,
         |                     ^
   lib/maple_tree.c:57:21: note: (near initialization for 'mt_min_slots[1]')
   lib/maple_tree.c:57:21: error: initializer element is not constant
   lib/maple_tree.c:57:21: note: (near initialization for 'mt_min_slots[1]')
   lib/maple_tree.c:58:42: error: invalid operands to binary / (have 'const unsigned char *' and 'int')
      58 |  [maple_range_64] = (MAPLE_RANGE64_SLOTS / 2) - 2,
         |                      ~~~~~~~~~~~~~~~~~~~ ^
         |                      |
         |                      const unsigned char *
   lib/maple_tree.c:58:21: warning: initialization of 'unsigned char' from 'const unsigned char *' makes integer from pointer without a cast [-Wint-conversion]
      58 |  [maple_range_64] = (MAPLE_RANGE64_SLOTS / 2) - 2,
         |                     ^
   lib/maple_tree.c:58:21: note: (near initialization for 'mt_min_slots[2]')
   lib/maple_tree.c:58:21: error: initializer element is not constant
   lib/maple_tree.c:58:21: note: (near initialization for 'mt_min_slots[2]')
   lib/maple_tree.c:59:44: error: invalid operands to binary / (have 'const unsigned char *' and 'int')
      59 |  [maple_arange_64] = (MAPLE_ARANGE64_SLOTS / 2) - 1,
         |                       ~~~~~~~~~~~~~~~~~~~~ ^
         |                       |
         |                       const unsigned char *
   lib/maple_tree.c:59:22: warning: initialization of 'unsigned char' from 'const unsigned char *' makes integer from pointer without a cast [-Wint-conversion]
      59 |  [maple_arange_64] = (MAPLE_ARANGE64_SLOTS / 2) - 1,
         |                      ^
   lib/maple_tree.c:59:22: note: (near initialization for 'mt_min_slots[3]')
   lib/maple_tree.c:59:22: error: initializer element is not constant
   lib/maple_tree.c:59:22: note: (near initialization for 'mt_min_slots[3]')
   lib/maple_tree.c:63:51: error: invalid operands to binary * (have 'const unsigned char *' and 'int')
      63 | #define MAPLE_BIG_NODE_SLOTS (MAPLE_RANGE64_SLOTS * 2 + 2)
         |                               ~~~~~~~~~~~~~~~~~~~ ^
         |                               |
         |                               const unsigned char *
   lib/maple_tree.c:67:27: note: in expansion of macro 'MAPLE_BIG_NODE_SLOTS'
      67 |  struct maple_enode *slot[MAPLE_BIG_NODE_SLOTS];
         |                           ^~~~~~~~~~~~~~~~~~~~
   lib/maple_tree.c:67:22: error: size of array 'slot' has non-integer type


vim +/MAPLE_RANGE64_SLOTS +79 include/linux/maple_tree.h

    40	
    41	
    42	/**
    43	 * maple_tree node explained
    44	 *
    45	 * Each node type has a number of slots for entries and a number of slots for
    46	 * pivots.  In the case of dense nodes, the pivots are implied by the position
    47	 * and are simply the slot index + the minimum of the node.
    48	 *
    49	 * In regular B-Tree terms, pivots are called keys.  The term pivot is used to
    50	 * indicate that the tree is specifying ranges,  Pivots may appear in the
    51	 * subtree with an entry attached to the value where as keys are unique to a
    52	 * specific position of a B-tree.  Pivot values are inclusive of the slot with
    53	 * the same index.
    54	 *
    55	 *
    56	 * The following illustrates the layout of a range64 nodes slots and pivots.
    57	 *
    58	 *           _________________________________
    59	 *  Slots -> | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    60	 *           ┬   ┬   ┬   ┬   ┬   ┬   ┬   ┬   ┬
    61	 *           │   │   │   │   │   │   │   │   └─ Implied maximum
    62	 *           │   │   │   │   │   │   │   └─ Pivot 6
    63	 *           │   │   │   │   │   │   └─ Pivot 5
    64	 *           │   │   │   │   │   └─ Pivot 4
    65	 *           │   │   │   │   └─ Pivot 3
    66	 *           │   │   │   └─ Pivot 2
    67	 *           │   │   └─ Pivot 1
    68	 *           │   └─ Pivot 0
    69	 *           └─  Implied minimum
    70	 *
    71	 * Slot contents:
    72	 *  Internal (non-leaf) nodes contain pointers to other nodes.
    73	 *  Leaf nodes contain entries.
    74	 *
    75	 *
    76	 */
    77	struct maple_range_64 {
    78		struct maple_pnode *parent;
  > 79		unsigned long pivot[MAPLE_RANGE64_SLOTS - 1];
    80		void __rcu *slot[MAPLE_RANGE64_SLOTS];
    81	};
    82	
    83	struct maple_arange_64 {
    84		struct maple_pnode *parent;
  > 85		unsigned long pivot[MAPLE_ARANGE64_SLOTS - 1];
    86		void __rcu *slot[MAPLE_ARANGE64_SLOTS];
    87		unsigned long gap[MAPLE_ARANGE64_SLOTS];
    88		unsigned char meta;
    89	};
    90	
  > 91	#define MAPLE_ALLOC_SLOTS (MAPLE_NODE_SLOTS - 1)
    92	struct maple_alloc {
    93		unsigned long total;
    94		unsigned char node_count;
    95		unsigned int request_count;
    96		struct maple_alloc *slot[MAPLE_ALLOC_SLOTS];
    97	};
    98	

---
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" (17882 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ