CC: kbuild-all(a)lists.01.org CC: Linux Memory Management List TO: Mikulas Patocka CC: Mike Snitzer CC: Lukas Bulwahn tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 52a0bcb60e40f30211cb5cbbb0f582ec4e91d896 commit: 09d85f8d8909ec8baa07479ba5777bbca24961f3 [7490/11541] dm integrity: introduce the "fix_hmac" argument :::::: branch date: 12 hours ago :::::: commit date: 12 days ago config: mips-randconfig-m031-20210215 (attached as .config) compiler: mipsel-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/md/dm-integrity.c:539 sb_mac() error: memcmp() 'result' too small (64 vs 448) Old smatch warnings: drivers/md/dm-integrity.c:1749 integrity_metadata() warn: should 'this_step_blocks << ic->sb->log2_sectors_per_block' be a 64 bit type? drivers/md/dm-integrity.c:2483 do_journal_write() warn: should '(k - j) << ic->sb->log2_sectors_per_block' be a 64 bit type? drivers/md/dm-integrity.c:3267 dm_integrity_status() warn: should '1 << ic->sb->log2_interleave_sectors' be a 64 bit type? drivers/md/dm-integrity.c:3268 dm_integrity_status() warn: should '1 << ic->log2_buffer_sectors' be a 64 bit type? drivers/md/dm-integrity.c:4039 dm_integrity_ctr() warn: impossible condition '(val >= (~0) * 1000 / 24) => (0-u32max >= 178956970625)' drivers/md/dm-integrity.c:4442 dm_integrity_ctr() warn: missing error code 'r' vim +/result +539 drivers/md/dm-integrity.c 1f9fc0b826119f Mikulas Patocka 2018-07-03 500 09d85f8d8909ec Mikulas Patocka 2021-01-21 501 static int sb_mac(struct dm_integrity_c *ic, bool wr) 09d85f8d8909ec Mikulas Patocka 2021-01-21 502 { 09d85f8d8909ec Mikulas Patocka 2021-01-21 503 SHASH_DESC_ON_STACK(desc, ic->journal_mac); 09d85f8d8909ec Mikulas Patocka 2021-01-21 504 int r; 09d85f8d8909ec Mikulas Patocka 2021-01-21 505 unsigned size = crypto_shash_digestsize(ic->journal_mac); 09d85f8d8909ec Mikulas Patocka 2021-01-21 506 09d85f8d8909ec Mikulas Patocka 2021-01-21 507 if (sizeof(struct superblock) + size > 1 << SECTOR_SHIFT) { 09d85f8d8909ec Mikulas Patocka 2021-01-21 508 dm_integrity_io_error(ic, "digest is too long", -EINVAL); 09d85f8d8909ec Mikulas Patocka 2021-01-21 509 return -EINVAL; 09d85f8d8909ec Mikulas Patocka 2021-01-21 510 } 09d85f8d8909ec Mikulas Patocka 2021-01-21 511 09d85f8d8909ec Mikulas Patocka 2021-01-21 512 desc->tfm = ic->journal_mac; 09d85f8d8909ec Mikulas Patocka 2021-01-21 513 09d85f8d8909ec Mikulas Patocka 2021-01-21 514 r = crypto_shash_init(desc); 09d85f8d8909ec Mikulas Patocka 2021-01-21 515 if (unlikely(r < 0)) { 09d85f8d8909ec Mikulas Patocka 2021-01-21 516 dm_integrity_io_error(ic, "crypto_shash_init", r); 09d85f8d8909ec Mikulas Patocka 2021-01-21 517 return r; 09d85f8d8909ec Mikulas Patocka 2021-01-21 518 } 09d85f8d8909ec Mikulas Patocka 2021-01-21 519 09d85f8d8909ec Mikulas Patocka 2021-01-21 520 r = crypto_shash_update(desc, (__u8 *)ic->sb, (1 << SECTOR_SHIFT) - size); 09d85f8d8909ec Mikulas Patocka 2021-01-21 521 if (unlikely(r < 0)) { 09d85f8d8909ec Mikulas Patocka 2021-01-21 522 dm_integrity_io_error(ic, "crypto_shash_update", r); 09d85f8d8909ec Mikulas Patocka 2021-01-21 523 return r; 09d85f8d8909ec Mikulas Patocka 2021-01-21 524 } 09d85f8d8909ec Mikulas Patocka 2021-01-21 525 09d85f8d8909ec Mikulas Patocka 2021-01-21 526 if (likely(wr)) { 09d85f8d8909ec Mikulas Patocka 2021-01-21 527 r = crypto_shash_final(desc, (__u8 *)ic->sb + (1 << SECTOR_SHIFT) - size); 09d85f8d8909ec Mikulas Patocka 2021-01-21 528 if (unlikely(r < 0)) { 09d85f8d8909ec Mikulas Patocka 2021-01-21 529 dm_integrity_io_error(ic, "crypto_shash_final", r); 09d85f8d8909ec Mikulas Patocka 2021-01-21 530 return r; 09d85f8d8909ec Mikulas Patocka 2021-01-21 531 } 09d85f8d8909ec Mikulas Patocka 2021-01-21 532 } else { 09d85f8d8909ec Mikulas Patocka 2021-01-21 533 __u8 result[HASH_MAX_DIGESTSIZE]; 09d85f8d8909ec Mikulas Patocka 2021-01-21 534 r = crypto_shash_final(desc, result); 09d85f8d8909ec Mikulas Patocka 2021-01-21 535 if (unlikely(r < 0)) { 09d85f8d8909ec Mikulas Patocka 2021-01-21 536 dm_integrity_io_error(ic, "crypto_shash_final", r); 09d85f8d8909ec Mikulas Patocka 2021-01-21 537 return r; 09d85f8d8909ec Mikulas Patocka 2021-01-21 538 } 09d85f8d8909ec Mikulas Patocka 2021-01-21 @539 if (memcmp((__u8 *)ic->sb + (1 << SECTOR_SHIFT) - size, result, size)) { 09d85f8d8909ec Mikulas Patocka 2021-01-21 540 dm_integrity_io_error(ic, "superblock mac", -EILSEQ); 09d85f8d8909ec Mikulas Patocka 2021-01-21 541 return -EILSEQ; 09d85f8d8909ec Mikulas Patocka 2021-01-21 542 } 09d85f8d8909ec Mikulas Patocka 2021-01-21 543 } 09d85f8d8909ec Mikulas Patocka 2021-01-21 544 09d85f8d8909ec Mikulas Patocka 2021-01-21 545 return 0; 09d85f8d8909ec Mikulas Patocka 2021-01-21 546 } 09d85f8d8909ec Mikulas Patocka 2021-01-21 547 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org