[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202203190047.6huR1WwQ-lkp@intel.com>
Date: Sat, 19 Mar 2022 00:55:05 +0800
From: kernel test robot <lkp@...el.com>
To: Christophe Leroy <christophe.leroy@...roup.eu>
Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
Michael Ellerman <mpe@...erman.id.au>
Subject: fs/fat/dir.c:1279:1: warning: the frame size of 2080 bytes is larger
than 1024 bytes
Hi Christophe,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 551acdc3c3d2b6bc97f11e31dcf960bc36343bfc
commit: 4eeef098b43242ed145c83fba9989d586d707589 powerpc/44x: Remove STDBINUTILS kconfig option
date: 1 year, 2 months ago
config: powerpc-randconfig-r034-20220318 (https://download.01.org/0day-ci/archive/20220319/202203190047.6huR1WwQ-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 11.2.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=4eeef098b43242ed145c83fba9989d586d707589
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 4eeef098b43242ed145c83fba9989d586d707589
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All warnings (new ones prefixed by >>):
fs/fat/dir.c: In function 'fat_add_new_entries':
>> fs/fat/dir.c:1279:1: warning: the frame size of 2080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1279 | }
| ^
fs/fat/dir.c: In function 'fat_alloc_new_dir':
fs/fat/dir.c:1195:1: warning: the frame size of 2064 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1195 | }
| ^
--
fs/fat/fatent.c: In function 'fat_free_clusters':
>> fs/fat/fatent.c:632:1: warning: the frame size of 2096 bytes is larger than 1024 bytes [-Wframe-larger-than=]
632 | }
| ^
fs/fat/fatent.c: In function 'fat_alloc_clusters':
fs/fat/fatent.c:550:1: warning: the frame size of 2128 bytes is larger than 1024 bytes [-Wframe-larger-than=]
550 | }
| ^
--
fs/exfat/fatent.c: In function 'exfat_zeroed_cluster':
>> fs/exfat/fatent.c:277:1: warning: the frame size of 2064 bytes is larger than 1024 bytes [-Wframe-larger-than=]
277 | }
| ^
--
fs/buffer.c: In function 'block_read_full_page':
>> fs/buffer.c:2342:1: warning: the frame size of 2064 bytes is larger than 1024 bytes [-Wframe-larger-than=]
2342 | }
| ^
--
fs/ext4/move_extent.c: In function 'mext_page_mkuptodate':
>> fs/ext4/move_extent.c:227:1: warning: the frame size of 2064 bytes is larger than 1024 bytes [-Wframe-larger-than=]
227 | }
| ^
vim +1279 fs/fat/dir.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 1197
^1da177e4c3f41 Linus Torvalds 2005-04-16 1198 static int fat_add_new_entries(struct inode *dir, void *slots, int nr_slots,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1199 int *nr_cluster, struct msdos_dir_entry **de,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1200 struct buffer_head **bh, loff_t *i_pos)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1201 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 1202 struct super_block *sb = dir->i_sb;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1203 struct msdos_sb_info *sbi = MSDOS_SB(sb);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1204 struct buffer_head *bhs[MAX_BUF_PER_PAGE];
^1da177e4c3f41 Linus Torvalds 2005-04-16 1205 sector_t blknr, start_blknr, last_blknr;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1206 unsigned long size, copy;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1207 int err, i, n, offset, cluster[2];
^1da177e4c3f41 Linus Torvalds 2005-04-16 1208
^1da177e4c3f41 Linus Torvalds 2005-04-16 1209 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1210 * The minimum cluster size is 512bytes, and maximum entry
^1da177e4c3f41 Linus Torvalds 2005-04-16 1211 * size is 32*slots (672bytes). So, iff the cluster size is
^1da177e4c3f41 Linus Torvalds 2005-04-16 1212 * 512bytes, we may need two clusters.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1213 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1214 size = nr_slots * sizeof(struct msdos_dir_entry);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1215 *nr_cluster = (size + (sbi->cluster_size - 1)) >> sbi->cluster_bits;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1216 BUG_ON(*nr_cluster > 2);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1217
^1da177e4c3f41 Linus Torvalds 2005-04-16 1218 err = fat_alloc_clusters(dir, cluster, *nr_cluster);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1219 if (err)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1220 goto error;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1221
^1da177e4c3f41 Linus Torvalds 2005-04-16 1222 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1223 * First stage: Fill the directory entry. NOTE: This cluster
^1da177e4c3f41 Linus Torvalds 2005-04-16 1224 * is not referenced from any inode yet, so updates order is
^1da177e4c3f41 Linus Torvalds 2005-04-16 1225 * not important.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1226 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1227 i = n = copy = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1228 do {
^1da177e4c3f41 Linus Torvalds 2005-04-16 1229 start_blknr = blknr = fat_clus_to_blknr(sbi, cluster[i]);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1230 last_blknr = start_blknr + sbi->sec_per_clus;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1231 while (blknr < last_blknr) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 1232 bhs[n] = sb_getblk(sb, blknr);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1233 if (!bhs[n]) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 1234 err = -ENOMEM;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1235 goto error_nomem;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1236 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1237
^1da177e4c3f41 Linus Torvalds 2005-04-16 1238 /* fill the directory entry */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1239 copy = min(size, sb->s_blocksize);
07bfa4415ab607 OGAWA Hirofumi 2019-09-23 1240 /* Avoid race with userspace read via bdev */
07bfa4415ab607 OGAWA Hirofumi 2019-09-23 1241 lock_buffer(bhs[n]);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1242 memcpy(bhs[n]->b_data, slots, copy);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1243 set_buffer_uptodate(bhs[n]);
07bfa4415ab607 OGAWA Hirofumi 2019-09-23 1244 unlock_buffer(bhs[n]);
b522412aeabadb Al Viro 2009-06-07 1245 mark_buffer_dirty_inode(bhs[n], dir);
07bfa4415ab607 OGAWA Hirofumi 2019-09-23 1246 slots += copy;
07bfa4415ab607 OGAWA Hirofumi 2019-09-23 1247 size -= copy;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1248 if (!size)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1249 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1250 n++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1251 blknr++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1252 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1253 } while (++i < *nr_cluster);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1254
^1da177e4c3f41 Linus Torvalds 2005-04-16 1255 memset(bhs[n]->b_data + copy, 0, sb->s_blocksize - copy);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1256 offset = copy - sizeof(struct msdos_dir_entry);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1257 get_bh(bhs[n]);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1258 *bh = bhs[n];
^1da177e4c3f41 Linus Torvalds 2005-04-16 1259 *de = (struct msdos_dir_entry *)((*bh)->b_data + offset);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1260 *i_pos = fat_make_i_pos(sb, *bh, *de);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1261
^1da177e4c3f41 Linus Torvalds 2005-04-16 1262 /* Second stage: clear the rest of cluster, and write outs */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1263 err = fat_zeroed_cluster(dir, start_blknr, ++n, bhs, MAX_BUF_PER_PAGE);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1264 if (err)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1265 goto error_free;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1266
^1da177e4c3f41 Linus Torvalds 2005-04-16 1267 return cluster[0];
^1da177e4c3f41 Linus Torvalds 2005-04-16 1268
^1da177e4c3f41 Linus Torvalds 2005-04-16 1269 error_free:
^1da177e4c3f41 Linus Torvalds 2005-04-16 1270 brelse(*bh);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1271 *bh = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1272 n = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1273 error_nomem:
^1da177e4c3f41 Linus Torvalds 2005-04-16 1274 for (i = 0; i < n; i++)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1275 bforget(bhs[i]);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1276 fat_free_clusters(dir, cluster[0]);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1277 error:
^1da177e4c3f41 Linus Torvalds 2005-04-16 1278 return err;
^1da177e4c3f41 Linus Torvalds 2005-04-16 @1279 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1280
:::::: The code at line 1279 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds@...970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@...970.osdl.org>
---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Powered by blists - more mailing lists