Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp2358336pxk; Mon, 14 Sep 2020 11:08:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxNA0dD5TBK2R/kSvt/Ig/wrtyo87Sm9zplo2jF4XLGD18Xg2MJkL4QI8jRVBVtXwHXiOm2 X-Received: by 2002:a50:cf0b:: with SMTP id c11mr18037386edk.87.1600106885155; Mon, 14 Sep 2020 11:08:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600106885; cv=none; d=google.com; s=arc-20160816; b=iEo/2dH3dyyWM3/UVuA3td4dE48Y79d8P3mi7LCN3b+hYykEhI9rU88pNDqNqfCG38 4GAPnVkSSTQCg5I8xwcJWagQd2XOrTpGBb5T4fhtYUaGDyzM7eUUo36+qQImNhK2L47o E2vsbxHVAj/MYoGdI8M5yzoU7y/LY423DYz/lHPwgGHMuaJ3EOGjVNJF8SWufiWLG1TM tem1Y0TJu9nea4gEm4OCT3rkDO0OnWhsrlkKnWsfDgXiIgUKPOh6+TpmzLcnEHC/3DSh gKaGrcAuxN0dPKrahyRbf8Ej5fXiocQdTR2PGblhX2isAmoVIMDvDH2M5aLNKoN6bBBn AI4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:ironport-sdr:ironport-sdr; bh=p7Q2lpZfplAhz07KITmNnvnCMiLzpCMi1begxHP3qvE=; b=bvWXdSnNLnAdV7IyaNl3z46a/ByF0UJbLNxrlxdMNAmyIfErKSroWuxd6MTVNZo0Co 3Hx2Mc55gEIyYyGNRTfokKLawcT6aty5ux88yAs4t0cGB7FKsJfUedg9B3BkE574e4AB V69dgUqLMB4jpRu4htFDp5TQpwPaGdduJosuFvXZNk9fwmRIRPTvEWiGSVMLIZ6hmoWn XcK/5Os+ZPGF/BwlSgWECZJ4Oz5JU+Wso2Xf+lOoQwmdA/h7z4A/E0rPlnZuDj704yvx 26UTDuNGefU6/u+uy3jwINnWEKghnVJntz65GLEEbw363wkHORGD4T1jG1V9+Qov4iFP fU1w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f10si7672073edw.119.2020.09.14.11.07.40; Mon, 14 Sep 2020 11:08:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726115AbgINSGz (ORCPT + 99 others); Mon, 14 Sep 2020 14:06:55 -0400 Received: from mga05.intel.com ([192.55.52.43]:9782 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725944AbgINSGW (ORCPT ); Mon, 14 Sep 2020 14:06:22 -0400 IronPort-SDR: TducWtsrgKoKc+k6JLtoJbLv9S5aXuID2G7ZhbaSYmU0qfD5TZ22iFPDgRbhODHQKwXPGvzRNx vvNx5FwM/yxw== X-IronPort-AV: E=McAfee;i="6000,8403,9744"; a="243965987" X-IronPort-AV: E=Sophos;i="5.76,427,1592895600"; d="gz'50?scan'50,208,50";a="243965987" X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2020 11:06:08 -0700 IronPort-SDR: ooohhaqs/iepvoZ3yNVSpTJIJOmwaKrMSvy864tDw1kim2Jl2wS8CU47j9i4kH7Bro7PmhhfuF GuE5jg81QHxg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,427,1592895600"; d="gz'50?scan'50,208,50";a="287699681" Received: from lkp-server01.sh.intel.com (HELO a75722977aa5) ([10.239.97.150]) by fmsmga008.fm.intel.com with ESMTP; 14 Sep 2020 11:06:05 -0700 Received: from kbuild by a75722977aa5 with local (Exim 4.92) (envelope-from ) id 1kHsrc-00018u-Vk; Mon, 14 Sep 2020 18:06:04 +0000 Date: Tue, 15 Sep 2020 02:05:06 +0800 From: kernel test robot To: Liu Shixin , Alasdair Kergon , Mike Snitzer , dm-devel@redhat.com Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, Liu Shixin Subject: Re: [PATCH -next] dm integrity: convert to use le64_add_cpu() Message-ID: <202009150108.OqsW2U3q%lkp@intel.com> References: <20200914041749.3702000-1-liushixin2@huawei.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="sdtB3X0nJg68CQEu" Content-Disposition: inline In-Reply-To: <20200914041749.3702000-1-liushixin2@huawei.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --sdtB3X0nJg68CQEu Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Liu, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on next-20200911] url: https://github.com/0day-ci/linux/commits/Liu-Shixin/dm-integrity-convert-to-use-le64_add_cpu/20200914-115650 base: d5b2251d63b5344ee827d3680fa79bdb9f9ddfa1 config: x86_64-randconfig-s022-20200914 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.2-191-g10164920-dirty # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) drivers/md/dm-integrity.c:2672:25: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:2712:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] sector_hi @@ got restricted __le32 [usertype] @@ drivers/md/dm-integrity.c:2712:25: sparse: expected unsigned int [usertype] sector_hi drivers/md/dm-integrity.c:2712:25: sparse: got restricted __le32 [usertype] drivers/md/dm-integrity.c:2784:38: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:2945:31: sparse: sparse: invalid assignment: &= drivers/md/dm-integrity.c:2945:31: sparse: left side has type unsigned int drivers/md/dm-integrity.c:2945:31: sparse: right side has type restricted __le32 drivers/md/dm-integrity.c:2960:43: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:2977:47: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] provided_data_sectors @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:2977:47: sparse: expected unsigned long long [usertype] provided_data_sectors drivers/md/dm-integrity.c:2977:47: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:2983:29: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:2993:55: sparse: sparse: invalid assignment: |= drivers/md/dm-integrity.c:2993:55: sparse: left side has type unsigned int drivers/md/dm-integrity.c:2993:55: sparse: right side has type restricted __le32 drivers/md/dm-integrity.c:2994:63: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] recalc_sector @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:2994:63: sparse: expected unsigned long long [usertype] recalc_sector drivers/md/dm-integrity.c:2994:63: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:3005:47: sparse: sparse: invalid assignment: |= drivers/md/dm-integrity.c:3005:47: sparse: left side has type unsigned int drivers/md/dm-integrity.c:3005:47: sparse: right side has type restricted __le32 drivers/md/dm-integrity.c:3006:55: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] recalc_sector @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:3006:55: sparse: expected unsigned long long [usertype] recalc_sector drivers/md/dm-integrity.c:3006:55: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:3011:47: sparse: sparse: invalid assignment: |= drivers/md/dm-integrity.c:3011:47: sparse: left side has type unsigned int drivers/md/dm-integrity.c:3011:47: sparse: right side has type restricted __le32 drivers/md/dm-integrity.c:3012:55: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] recalc_sector @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:3012:55: sparse: expected unsigned long long [usertype] recalc_sector drivers/md/dm-integrity.c:3012:55: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:3016:39: sparse: sparse: invalid assignment: &= drivers/md/dm-integrity.c:3016:39: sparse: left side has type unsigned int drivers/md/dm-integrity.c:3016:39: sparse: right side has type restricted __le32 drivers/md/dm-integrity.c:3024:39: sparse: sparse: invalid assignment: |= drivers/md/dm-integrity.c:3024:39: sparse: left side has type unsigned int drivers/md/dm-integrity.c:3024:39: sparse: right side has type restricted __le32 drivers/md/dm-integrity.c:3033:45: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:3034:29: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:3035:66: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:3036:77: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:3037:72: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:3038:77: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:3039:75: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:3040:77: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:3048:29: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:3049:36: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:3054:47: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] recalc_sector @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:3054:47: sparse: expected unsigned long long [usertype] recalc_sector drivers/md/dm-integrity.c:3054:47: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:3082:37: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:3083:25: sparse: sparse: cast to restricted __le64 drivers/md/dm-integrity.c:3095:49: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:3104:47: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:3111:37: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:3126:38: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:3171:32: sparse: sparse: cast to restricted __le32 drivers/md/dm-integrity.c:3175:29: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:3198:41: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:3253:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] integrity_tag_size @@ got restricted __le16 [usertype] @@ drivers/md/dm-integrity.c:3253:36: sparse: expected unsigned short [usertype] integrity_tag_size drivers/md/dm-integrity.c:3253:36: sparse: got restricted __le16 [usertype] drivers/md/dm-integrity.c:3256:31: sparse: sparse: invalid assignment: |= drivers/md/dm-integrity.c:3256:31: sparse: left side has type unsigned int drivers/md/dm-integrity.c:3256:31: sparse: right side has type restricted __le32 drivers/md/dm-integrity.c:3265:39: sparse: sparse: invalid assignment: |= drivers/md/dm-integrity.c:3265:39: sparse: left side has type unsigned int drivers/md/dm-integrity.c:3265:39: sparse: right side has type restricted __le32 drivers/md/dm-integrity.c:3266:42: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] journal_sections @@ got restricted __le32 [usertype] @@ drivers/md/dm-integrity.c:3266:42: sparse: expected unsigned int [usertype] journal_sections drivers/md/dm-integrity.c:3266:42: sparse: got restricted __le32 [usertype] drivers/md/dm-integrity.c:3284:42: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] journal_sections @@ got restricted __le32 [usertype] @@ drivers/md/dm-integrity.c:3284:42: sparse: expected unsigned int [usertype] journal_sections drivers/md/dm-integrity.c:3284:42: sparse: got restricted __le32 [usertype] drivers/md/dm-integrity.c:3286:55: sparse: sparse: cast to restricted __le32 drivers/md/dm-integrity.c:3290:50: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] journal_sections @@ got restricted __le32 [usertype] @@ drivers/md/dm-integrity.c:3290:50: sparse: expected unsigned int [usertype] journal_sections drivers/md/dm-integrity.c:3290:50: sparse: got restricted __le32 [usertype] drivers/md/dm-integrity.c:3292:58: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] journal_sections @@ got restricted __le32 [usertype] @@ drivers/md/dm-integrity.c:3292:58: sparse: expected unsigned int [usertype] journal_sections drivers/md/dm-integrity.c:3292:58: sparse: got restricted __le32 [usertype] drivers/md/dm-integrity.c:3295:22: sparse: sparse: cast to restricted __le32 drivers/md/dm-integrity.c:3304:39: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] provided_data_sectors @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:3304:39: sparse: expected unsigned long long [usertype] provided_data_sectors drivers/md/dm-integrity.c:3304:39: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:3496:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:3496:27: sparse: expected unsigned long long drivers/md/dm-integrity.c:3496:27: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:3497:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:3497:27: sparse: expected unsigned long long drivers/md/dm-integrity.c:3497:27: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:3498:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:3498:27: sparse: expected unsigned long long drivers/md/dm-integrity.c:3498:27: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:3499:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:3499:27: sparse: expected unsigned long long drivers/md/dm-integrity.c:3499:27: sparse: got restricted __le64 [usertype] drivers/md/dm-integrity.c:3653:52: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned int [usertype] section_le @@ got restricted __le32 [usertype] @@ drivers/md/dm-integrity.c:3653:52: sparse: expected unsigned int [usertype] section_le drivers/md/dm-integrity.c:3653:52: sparse: got restricted __le32 [usertype] >> drivers/md/dm-integrity.c:3699:61: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __le64 [usertype] *var @@ got unsigned long long * @@ >> drivers/md/dm-integrity.c:3699:61: sparse: expected restricted __le64 [usertype] *var >> drivers/md/dm-integrity.c:3699:61: sparse: got unsigned long long * drivers/md/dm-integrity.c:4066:13: sparse: sparse: cast to restricted __le16 drivers/md/dm-integrity.c:4076:14: sparse: sparse: cast to restricted __le32 drivers/md/dm-integrity.c:4096:32: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:4174:55: sparse: sparse: restricted __le32 degrades to integer drivers/md/dm-integrity.c:4175:31: sparse: sparse: invalid assignment: |= drivers/md/dm-integrity.c:4175:31: sparse: left side has type unsigned int drivers/md/dm-integrity.c:4175:31: sparse: right side has type restricted __le32 drivers/md/dm-integrity.c:4176:39: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] recalc_sector @@ got restricted __le64 [usertype] @@ drivers/md/dm-integrity.c:4176:39: sparse: expected unsigned long long [usertype] recalc_sector drivers/md/dm-integrity.c:4176:39: sparse: got restricted __le64 [usertype] # https://github.com/0day-ci/linux/commit/d0fe72210efe84e8e9c90b1650eb8a5728378dbe git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Liu-Shixin/dm-integrity-convert-to-use-le64_add_cpu/20200914-115650 git checkout d0fe72210efe84e8e9c90b1650eb8a5728378dbe vim +3699 drivers/md/dm-integrity.c 3487 3488 static int create_journal(struct dm_integrity_c *ic, char **error) 3489 { 3490 int r = 0; 3491 unsigned i; 3492 __u64 journal_pages, journal_desc_size, journal_tree_size; 3493 unsigned char *crypt_data = NULL, *crypt_iv = NULL; 3494 struct skcipher_request *req = NULL; 3495 3496 ic->commit_ids[0] = cpu_to_le64(0x1111111111111111ULL); 3497 ic->commit_ids[1] = cpu_to_le64(0x2222222222222222ULL); 3498 ic->commit_ids[2] = cpu_to_le64(0x3333333333333333ULL); 3499 ic->commit_ids[3] = cpu_to_le64(0x4444444444444444ULL); 3500 3501 journal_pages = roundup((__u64)ic->journal_sections * ic->journal_section_sectors, 3502 PAGE_SIZE >> SECTOR_SHIFT) >> (PAGE_SHIFT - SECTOR_SHIFT); 3503 journal_desc_size = journal_pages * sizeof(struct page_list); 3504 if (journal_pages >= totalram_pages() - totalhigh_pages() || journal_desc_size > ULONG_MAX) { 3505 *error = "Journal doesn't fit into memory"; 3506 r = -ENOMEM; 3507 goto bad; 3508 } 3509 ic->journal_pages = journal_pages; 3510 3511 ic->journal = dm_integrity_alloc_page_list(ic->journal_pages); 3512 if (!ic->journal) { 3513 *error = "Could not allocate memory for journal"; 3514 r = -ENOMEM; 3515 goto bad; 3516 } 3517 if (ic->journal_crypt_alg.alg_string) { 3518 unsigned ivsize, blocksize; 3519 struct journal_completion comp; 3520 3521 comp.ic = ic; 3522 ic->journal_crypt = crypto_alloc_skcipher(ic->journal_crypt_alg.alg_string, 0, 0); 3523 if (IS_ERR(ic->journal_crypt)) { 3524 *error = "Invalid journal cipher"; 3525 r = PTR_ERR(ic->journal_crypt); 3526 ic->journal_crypt = NULL; 3527 goto bad; 3528 } 3529 ivsize = crypto_skcipher_ivsize(ic->journal_crypt); 3530 blocksize = crypto_skcipher_blocksize(ic->journal_crypt); 3531 3532 if (ic->journal_crypt_alg.key) { 3533 r = crypto_skcipher_setkey(ic->journal_crypt, ic->journal_crypt_alg.key, 3534 ic->journal_crypt_alg.key_size); 3535 if (r) { 3536 *error = "Error setting encryption key"; 3537 goto bad; 3538 } 3539 } 3540 DEBUG_print("cipher %s, block size %u iv size %u\n", 3541 ic->journal_crypt_alg.alg_string, blocksize, ivsize); 3542 3543 ic->journal_io = dm_integrity_alloc_page_list(ic->journal_pages); 3544 if (!ic->journal_io) { 3545 *error = "Could not allocate memory for journal io"; 3546 r = -ENOMEM; 3547 goto bad; 3548 } 3549 3550 if (blocksize == 1) { 3551 struct scatterlist *sg; 3552 3553 req = skcipher_request_alloc(ic->journal_crypt, GFP_KERNEL); 3554 if (!req) { 3555 *error = "Could not allocate crypt request"; 3556 r = -ENOMEM; 3557 goto bad; 3558 } 3559 3560 crypt_iv = kzalloc(ivsize, GFP_KERNEL); 3561 if (!crypt_iv) { 3562 *error = "Could not allocate iv"; 3563 r = -ENOMEM; 3564 goto bad; 3565 } 3566 3567 ic->journal_xor = dm_integrity_alloc_page_list(ic->journal_pages); 3568 if (!ic->journal_xor) { 3569 *error = "Could not allocate memory for journal xor"; 3570 r = -ENOMEM; 3571 goto bad; 3572 } 3573 3574 sg = kvmalloc_array(ic->journal_pages + 1, 3575 sizeof(struct scatterlist), 3576 GFP_KERNEL); 3577 if (!sg) { 3578 *error = "Unable to allocate sg list"; 3579 r = -ENOMEM; 3580 goto bad; 3581 } 3582 sg_init_table(sg, ic->journal_pages + 1); 3583 for (i = 0; i < ic->journal_pages; i++) { 3584 char *va = lowmem_page_address(ic->journal_xor[i].page); 3585 clear_page(va); 3586 sg_set_buf(&sg[i], va, PAGE_SIZE); 3587 } 3588 sg_set_buf(&sg[i], &ic->commit_ids, sizeof ic->commit_ids); 3589 3590 skcipher_request_set_crypt(req, sg, sg, 3591 PAGE_SIZE * ic->journal_pages + sizeof ic->commit_ids, crypt_iv); 3592 init_completion(&comp.comp); 3593 comp.in_flight = (atomic_t)ATOMIC_INIT(1); 3594 if (do_crypt(true, req, &comp)) 3595 wait_for_completion(&comp.comp); 3596 kvfree(sg); 3597 r = dm_integrity_failed(ic); 3598 if (r) { 3599 *error = "Unable to encrypt journal"; 3600 goto bad; 3601 } 3602 DEBUG_bytes(lowmem_page_address(ic->journal_xor[0].page), 64, "xor data"); 3603 3604 crypto_free_skcipher(ic->journal_crypt); 3605 ic->journal_crypt = NULL; 3606 } else { 3607 unsigned crypt_len = roundup(ivsize, blocksize); 3608 3609 req = skcipher_request_alloc(ic->journal_crypt, GFP_KERNEL); 3610 if (!req) { 3611 *error = "Could not allocate crypt request"; 3612 r = -ENOMEM; 3613 goto bad; 3614 } 3615 3616 crypt_iv = kmalloc(ivsize, GFP_KERNEL); 3617 if (!crypt_iv) { 3618 *error = "Could not allocate iv"; 3619 r = -ENOMEM; 3620 goto bad; 3621 } 3622 3623 crypt_data = kmalloc(crypt_len, GFP_KERNEL); 3624 if (!crypt_data) { 3625 *error = "Unable to allocate crypt data"; 3626 r = -ENOMEM; 3627 goto bad; 3628 } 3629 3630 ic->journal_scatterlist = dm_integrity_alloc_journal_scatterlist(ic, ic->journal); 3631 if (!ic->journal_scatterlist) { 3632 *error = "Unable to allocate sg list"; 3633 r = -ENOMEM; 3634 goto bad; 3635 } 3636 ic->journal_io_scatterlist = dm_integrity_alloc_journal_scatterlist(ic, ic->journal_io); 3637 if (!ic->journal_io_scatterlist) { 3638 *error = "Unable to allocate sg list"; 3639 r = -ENOMEM; 3640 goto bad; 3641 } 3642 ic->sk_requests = kvmalloc_array(ic->journal_sections, 3643 sizeof(struct skcipher_request *), 3644 GFP_KERNEL | __GFP_ZERO); 3645 if (!ic->sk_requests) { 3646 *error = "Unable to allocate sk requests"; 3647 r = -ENOMEM; 3648 goto bad; 3649 } 3650 for (i = 0; i < ic->journal_sections; i++) { 3651 struct scatterlist sg; 3652 struct skcipher_request *section_req; 3653 __u32 section_le = cpu_to_le32(i); 3654 3655 memset(crypt_iv, 0x00, ivsize); 3656 memset(crypt_data, 0x00, crypt_len); 3657 memcpy(crypt_data, §ion_le, min((size_t)crypt_len, sizeof(section_le))); 3658 3659 sg_init_one(&sg, crypt_data, crypt_len); 3660 skcipher_request_set_crypt(req, &sg, &sg, crypt_len, crypt_iv); 3661 init_completion(&comp.comp); 3662 comp.in_flight = (atomic_t)ATOMIC_INIT(1); 3663 if (do_crypt(true, req, &comp)) 3664 wait_for_completion(&comp.comp); 3665 3666 r = dm_integrity_failed(ic); 3667 if (r) { 3668 *error = "Unable to generate iv"; 3669 goto bad; 3670 } 3671 3672 section_req = skcipher_request_alloc(ic->journal_crypt, GFP_KERNEL); 3673 if (!section_req) { 3674 *error = "Unable to allocate crypt request"; 3675 r = -ENOMEM; 3676 goto bad; 3677 } 3678 section_req->iv = kmalloc_array(ivsize, 2, 3679 GFP_KERNEL); 3680 if (!section_req->iv) { 3681 skcipher_request_free(section_req); 3682 *error = "Unable to allocate iv"; 3683 r = -ENOMEM; 3684 goto bad; 3685 } 3686 memcpy(section_req->iv + ivsize, crypt_data, ivsize); 3687 section_req->cryptlen = (size_t)ic->journal_section_sectors << SECTOR_SHIFT; 3688 ic->sk_requests[i] = section_req; 3689 DEBUG_bytes(crypt_data, ivsize, "iv(%u)", i); 3690 } 3691 } 3692 } 3693 3694 for (i = 0; i < N_COMMIT_IDS; i++) { 3695 unsigned j; 3696 retest_commit_id: 3697 for (j = 0; j < i; j++) { 3698 if (ic->commit_ids[j] == ic->commit_ids[i]) { > 3699 le64_add_cpu(&ic->commit_ids[i], 1); 3700 goto retest_commit_id; 3701 } 3702 } 3703 DEBUG_print("commit id %u: %016llx\n", i, ic->commit_ids[i]); 3704 } 3705 3706 journal_tree_size = (__u64)ic->journal_entries * sizeof(struct journal_node); 3707 if (journal_tree_size > ULONG_MAX) { 3708 *error = "Journal doesn't fit into memory"; 3709 r = -ENOMEM; 3710 goto bad; 3711 } 3712 ic->journal_tree = kvmalloc(journal_tree_size, GFP_KERNEL); 3713 if (!ic->journal_tree) { 3714 *error = "Could not allocate memory for journal tree"; 3715 r = -ENOMEM; 3716 } 3717 bad: 3718 kfree(crypt_data); 3719 kfree(crypt_iv); 3720 skcipher_request_free(req); 3721 3722 return r; 3723 } 3724 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --sdtB3X0nJg68CQEu Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --sdtB3X0nJg68CQEu--