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
| ||
|
Message-ID: <202006011907.ocBGNEZT%lkp@intel.com>
Date: Mon, 1 Jun 2020 19:41:14 +0800
From: kbuild test robot <lkp@...el.com>
To: "Ritesh, Harjani," <riteshh@...ux.ibm.com>
Cc: kbuild-all@...ts.01.org, clang-built-linux@...glegroups.com,
linux-ext4@...r.kernel.org, Theodore Ts'o <tytso@....edu>
Subject: [ext4:dev 41/50] fs/ext4/mballoc.c:1494:2: error: invalid input size
for constraint 'qi'
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@...el.com>
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@lists.01.org
Download attachment ".config.gz" of type "application/gzip" (29267 bytes)
Powered by blists - more mailing lists