[ext4:dev 41/50] fs/ext4/mballoc.c:1494:2: error: invalid input size for constraint 'qi'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev
head:   38bd76b9696c5582dcef4ab1af437e0666021f65
commit: 42f56b7a4a7db127a9d281da584152dc3d525d25 [41/50] ext4: mballoc: introduce pcpu seqcnt for freeing PA to improve ENOSPC handling
config: i386-randconfig-a014-20200601 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 2388a096e7865c043e83ece4e26654bd3d1a20d5)
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 i386 cross compiling tool for clang build
        # apt-get install binutils-i386-linux-gnu
        git checkout 42f56b7a4a7db127a9d281da584152dc3d525d25
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 

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

All errors (new ones prefixed by >>, old ones prefixed by <<):

>> fs/ext4/mballoc.c:1494:2: error: invalid input size for constraint 'qi'
this_cpu_inc(discard_pa_seq);
^
include/linux/percpu-defs.h:520:28: note: expanded from macro 'this_cpu_inc'
#define this_cpu_inc(pcp)               this_cpu_add(pcp, 1)
^
include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add'
#define this_cpu_add(pcp, val)          __pcpu_size_call(this_cpu_add_, pcp, val)
^
include/linux/percpu-defs.h:377:11: note: expanded from macro '__pcpu_size_call'
case 1: stem##1(variable, __VA_ARGS__);break;                                      ^
<scratch space>:160:1: note: expanded from here
this_cpu_add_1
^
arch/x86/include/asm/percpu.h:432:34: note: expanded from macro 'this_cpu_add_1'
#define this_cpu_add_1(pcp, val)        percpu_add_op(volatile, (pcp), val)
^
arch/x86/include/asm/percpu.h:147:16: note: expanded from macro 'percpu_add_op'
: "qi" ((pao_T__)(val)));                                                          ^
>> fs/ext4/mballoc.c:1494:2: error: invalid input size for constraint 'qi'
include/linux/percpu-defs.h:520:28: note: expanded from macro 'this_cpu_inc'
#define this_cpu_inc(pcp)               this_cpu_add(pcp, 1)
^
include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add'
#define this_cpu_add(pcp, val)          __pcpu_size_call(this_cpu_add_, pcp, val)
^
include/linux/percpu-defs.h:378:11: note: expanded from macro '__pcpu_size_call'
case 2: stem##2(variable, __VA_ARGS__);break;                                      ^
<scratch space>:185:1: note: expanded from here
this_cpu_add_2
^
arch/x86/include/asm/percpu.h:433:34: note: expanded from macro 'this_cpu_add_2'
#define this_cpu_add_2(pcp, val)        percpu_add_op(volatile, (pcp), val)
^
arch/x86/include/asm/percpu.h:147:16: note: expanded from macro 'percpu_add_op'
: "qi" ((pao_T__)(val)));                                                          ^
>> fs/ext4/mballoc.c:1494:2: error: invalid input size for constraint 'qi'
include/linux/percpu-defs.h:520:28: note: expanded from macro 'this_cpu_inc'
#define this_cpu_inc(pcp)               this_cpu_add(pcp, 1)
^
include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add'
#define this_cpu_add(pcp, val)          __pcpu_size_call(this_cpu_add_, pcp, val)
^
include/linux/percpu-defs.h:379:11: note: expanded from macro '__pcpu_size_call'
case 4: stem##4(variable, __VA_ARGS__);break;                                      ^
<scratch space>:210:1: note: expanded from here
this_cpu_add_4
^
arch/x86/include/asm/percpu.h:434:34: note: expanded from macro 'this_cpu_add_4'
#define this_cpu_add_4(pcp, val)        percpu_add_op(volatile, (pcp), val)
^
arch/x86/include/asm/percpu.h:147:16: note: expanded from macro 'percpu_add_op'
: "qi" ((pao_T__)(val)));                                                          ^
fs/ext4/mballoc.c:1636:2: error: invalid input size for constraint 'qi'
this_cpu_inc(discard_pa_seq);
^
include/linux/percpu-defs.h:520:28: note: expanded from macro 'this_cpu_inc'
#define this_cpu_inc(pcp)               this_cpu_add(pcp, 1)
^
include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add'
#define this_cpu_add(pcp, val)          __pcpu_size_call(this_cpu_add_, pcp, val)
^
include/linux/percpu-defs.h:377:11: note: expanded from macro '__pcpu_size_call'
case 1: stem##1(variable, __VA_ARGS__);break;                                      ^
<scratch space>:12:1: note: expanded from here
this_cpu_add_1
^
arch/x86/include/asm/percpu.h:432:34: note: expanded from macro 'this_cpu_add_1'
#define this_cpu_add_1(pcp, val)        percpu_add_op(volatile, (pcp), val)
^
arch/x86/include/asm/percpu.h:147:16: note: expanded from macro 'percpu_add_op'
: "qi" ((pao_T__)(val)));                                                          ^
fs/ext4/mballoc.c:1636:2: error: invalid input size for constraint 'qi'
include/linux/percpu-defs.h:520:28: note: expanded from macro 'this_cpu_inc'
#define this_cpu_inc(pcp)               this_cpu_add(pcp, 1)
^
include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add'
#define this_cpu_add(pcp, val)          __pcpu_size_call(this_cpu_add_, pcp, val)
^
include/linux/percpu-defs.h:378:11: note: expanded from macro '__pcpu_size_call'
case 2: stem##2(variable, __VA_ARGS__);break;                                      ^
<scratch space>:37:1: note: expanded from here
this_cpu_add_2
^
arch/x86/include/asm/percpu.h:433:34: note: expanded from macro 'this_cpu_add_2'
#define this_cpu_add_2(pcp, val)        percpu_add_op(volatile, (pcp), val)
^
arch/x86/include/asm/percpu.h:147:16: note: expanded from macro 'percpu_add_op'
: "qi" ((pao_T__)(val)));                                                          ^
fs/ext4/mballoc.c:1636:2: error: invalid input size for constraint 'qi'
include/linux/percpu-defs.h:520:28: note: expanded from macro 'this_cpu_inc'
#define this_cpu_inc(pcp)               this_cpu_add(pcp, 1)
^
include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add'
#define this_cpu_add(pcp, val)          __pcpu_size_call(this_cpu_add_, pcp, val)
^
include/linux/percpu-defs.h:379:11: note: expanded from macro '__pcpu_size_call'
case 4: stem##4(variable, __VA_ARGS__);break;                                      ^
<scratch space>:62:1: note: expanded from here
this_cpu_add_4
^
arch/x86/include/asm/percpu.h:434:34: note: expanded from macro 'this_cpu_add_4'
#define this_cpu_add_4(pcp, val)        percpu_add_op(volatile, (pcp), val)
^
arch/x86/include/asm/percpu.h:147:16: note: expanded from macro 'percpu_add_op'
: "qi" ((pao_T__)(val)));                                                          ^
fs/ext4/mballoc.c:3996:2: error: invalid input size for constraint 'qi'
this_cpu_inc(discard_pa_seq);
^
include/linux/percpu-defs.h:520:28: note: expanded from macro 'this_cpu_inc'
#define this_cpu_inc(pcp)               this_cpu_add(pcp, 1)
^
include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add'
#define this_cpu_add(pcp, val)          __pcpu_size_call(this_cpu_add_, pcp, val)
^
include/linux/percpu-defs.h:377:11: note: expanded from macro '__pcpu_size_call'
case 1: stem##1(variable, __VA_ARGS__);break;                                      ^
<scratch space>:150:1: note: expanded from here
this_cpu_add_1
^
arch/x86/include/asm/percpu.h:432:34: note: expanded from macro 'this_cpu_add_1'
#define this_cpu_add_1(pcp, val)        percpu_add_op(volatile, (pcp), val)
^
arch/x86/include/asm/percpu.h:147:16: note: expanded from macro 'percpu_add_op'
: "qi" ((pao_T__)(val)));                                                          ^
fs/ext4/mballoc.c:3996:2: error: invalid input size for constraint 'qi'
include/linux/percpu-defs.h:520:28: note: expanded from macro 'this_cpu_inc'

vim +/qi +1494 fs/ext4/mballoc.c

  1473	
  1474	static void mb_free_blocks(struct inode *inode, struct ext4_buddy *e4b,
  1475				   int first, int count)
  1476	{
  1477		int left_is_free = 0;
  1478		int right_is_free = 0;
  1479		int block;
  1480		int last = first + count - 1;
  1481		struct super_block *sb = e4b->bd_sb;
  1482	
  1483		if (WARN_ON(count == 0))
  1484			return;
  1485		BUG_ON(last >= (sb->s_blocksize << 3));
  1486		assert_spin_locked(ext4_group_lock_ptr(sb, e4b->bd_group));
  1487		/* Don't bother if the block group is corrupt. */
  1488		if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(e4b->bd_info)))
  1489			return;
  1490	
  1491		mb_check_buddy(e4b);
  1492		mb_free_blocks_double(inode, e4b, first, count);
  1493	
> 1494		this_cpu_inc(discard_pa_seq);
  1495		e4b->bd_info->bb_free += count;
  1496		if (first < e4b->bd_info->bb_first_free)
  1497			e4b->bd_info->bb_first_free = first;
  1498	
  1499		/* access memory sequentially: check left neighbour,
  1500		 * clear range and then check right neighbour
  1501		 */
  1502		if (first != 0)
  1503			left_is_free = !mb_test_bit(first - 1, e4b->bd_bitmap);
  1504		block = mb_test_and_clear_bits(e4b->bd_bitmap, first, count);
  1505		if (last + 1 < EXT4_SB(sb)->s_mb_maxs[0])
  1506			right_is_free = !mb_test_bit(last + 1, e4b->bd_bitmap);
  1507	
  1508		if (unlikely(block != -1)) {
  1509			struct ext4_sb_info *sbi = EXT4_SB(sb);
  1510			ext4_fsblk_t blocknr;
  1511	
  1512			blocknr = ext4_group_first_block_no(sb, e4b->bd_group);
  1513			blocknr += EXT4_C2B(sbi, block);
  1514			ext4_grp_locked_error(sb, e4b->bd_group,
  1515					      inode ? inode->i_ino : 0,
  1516					      blocknr,
  1517					      "freeing already freed block "
  1518					      "(bit %u); block bitmap corrupt.",
  1519					      block);
  1520			ext4_mark_group_bitmap_corrupted(sb, e4b->bd_group,
  1521					EXT4_GROUP_INFO_BBITMAP_CORRUPT);
  1522			mb_regenerate_buddy(e4b);
  1523			goto done;
  1524		}
  1525	
  1526		/* let's maintain fragments counter */
  1527		if (left_is_free && right_is_free)
  1528			e4b->bd_info->bb_fragments--;
  1529		else if (!left_is_free && !right_is_free)
  1530			e4b->bd_info->bb_fragments++;
  1531	
  1532		/* buddy[0] == bd_bitmap is a special case, so handle
  1533		 * it right away and let mb_buddy_mark_free stay free of
  1534		 * zero order checks.
  1535		 * Check if neighbours are to be coaleasced,
  1536		 * adjust bitmap bb_counters and borders appropriately.
  1537		 */
  1538		if (first & 1) {
  1539			first += !left_is_free;
  1540			e4b->bd_info->bb_counters[0] += left_is_free ? -1 : 1;
  1541		}
  1542		if (!(last & 1)) {
  1543			last -= !right_is_free;
  1544			e4b->bd_info->bb_counters[0] += right_is_free ? -1 : 1;
  1545		}
  1546	
  1547		if (first <= last)
  1548			mb_buddy_mark_free(e4b, first >> 1, last >> 1);
  1549	
  1550	done:
  1551		mb_set_largest_free_order(sb, e4b->bd_info);
  1552		mb_check_buddy(e4b);
  1553	}
  1554	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux