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

Powered by Openwall GNU/*/Linux Powered by OpenVZ