[hnaz-mm:master 280/410] lib/maple_tree.c:4207:20: warning: stack frame size (1088) exceeds limit (1024) in 'mas_wr_modify'

From: kernel test robot
Date: Fri Apr 29 2022 - 19:17:17 EST


tree: https://github.com/hnaz/linux-mm master
head: bf4803abaa3e9d2fa207c0675a2d2abf0fd44f66
commit: c11c433e3be4e5bef47f0a62a72064e18708e952 [280/410] Maple Tree: add new data structure
config: arm-moxart_defconfig (https://download.01.org/0day-ci/archive/20220430/202204300731.xnlH7nv1-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 400775649969b9baf3bc2a510266e7912bb16ae9)
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 arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/hnaz/linux-mm/commit/c11c433e3be4e5bef47f0a62a72064e18708e952
git remote add hnaz-mm https://github.com/hnaz/linux-mm
git fetch --no-tags hnaz-mm master
git checkout c11c433e3be4e5bef47f0a62a72064e18708e952
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash

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

All warnings (new ones prefixed by >>):

lib/maple_tree.c:324:20: warning: unused function 'mte_set_full' [-Wunused-function]
static inline void mte_set_full(const struct maple_enode *node)
^
lib/maple_tree.c:329:20: warning: unused function 'mte_clear_full' [-Wunused-function]
static inline void mte_clear_full(const struct maple_enode *node)
^
>> lib/maple_tree.c:4207:20: warning: stack frame size (1088) exceeds limit (1024) in 'mas_wr_modify' [-Wframe-larger-than]
static inline void mas_wr_modify(struct ma_wr_state *wr_mas)
^
3 warnings generated.


vim +/mas_wr_modify +4207 lib/maple_tree.c

4206
> 4207 static inline void mas_wr_modify(struct ma_wr_state *wr_mas)
4208 {
4209 unsigned char node_slots;
4210 unsigned char node_size;
4211 struct ma_state *mas = wr_mas->mas;
4212 struct maple_big_node b_node;
4213
4214 /* Direct replacement */
4215 if (wr_mas->r_min == mas->index && wr_mas->r_max == mas->last) {
4216 rcu_assign_pointer(wr_mas->slots[mas->offset], wr_mas->entry);
4217 if (!!wr_mas->entry ^ !!wr_mas->content)
4218 mas_update_gap(mas);
4219 return;
4220 }
4221
4222 /* Attempt to append */
4223 node_slots = mt_slots[wr_mas->type];
4224 node_size = wr_mas->node_end - wr_mas->offset_end + mas->offset + 2;
4225 if (mas->max == ULONG_MAX)
4226 node_size++;
4227
4228 /* slot and node store will not fit, go to the slow path */
4229 if (unlikely(node_size >= node_slots))
4230 goto slow_path;
4231
4232 if (wr_mas->entry && (wr_mas->node_end < node_slots - 1) &&
4233 (mas->offset == wr_mas->node_end) && mas_wr_append(wr_mas)) {
4234 if (!wr_mas->content || !wr_mas->entry)
4235 mas_update_gap(mas);
4236 return;
4237 }
4238
4239 if ((wr_mas->offset_end - mas->offset <= 1) && mas_wr_slot_store(wr_mas))
4240 return;
4241 else if (mas_wr_node_store(wr_mas))
4242 return;
4243
4244 if (mas_is_err(mas))
4245 return;
4246
4247 slow_path:
4248 memset(&b_node, 0, sizeof(struct maple_big_node));
4249 mas_store_b_node(wr_mas, &b_node, wr_mas->offset_end);
4250 trace_ma_write(__func__, mas, 0, wr_mas->entry);
4251 mas_commit_b_node(wr_mas, &b_node, wr_mas->node_end);
4252 }
4253

--
0-DAY CI Kernel Test Service
https://01.org/lkp