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 <l...@intel.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-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to