From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev,
steven chen <chenste@linux.microsoft.com>,
zohar@linux.ibm.com, stefanb@linux.ibm.com,
roberto.sassu@huaweicloud.com, roberto.sassu@huawei.com,
eric.snowberg@oracle.com, ebiederm@xmission.com,
paul@paul-moore.com, code@tyhicks.com, bauermann@kolabnow.com,
linux-integrity@vger.kernel.org, kexec@lists.infradead.org,
linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
madvenka@linux.microsoft.com, nramas@linux.microsoft.com,
James.Bottomley@hansenpartnership.com, bhe@redhat.com,
vgoyal@redhat.com, dyoung@redhat.com
Subject: Re: [PATCH v9 2/7] kexec: define functions to map and unmap segments
Date: Thu, 6 Mar 2025 09:35:26 +0300 [thread overview]
Message-ID: <7bde870f-07eb-48a6-8b8d-edac57640775@stanley.mountain> (raw)
In-Reply-To: <20250304190351.96975-3-chenste@linux.microsoft.com>
Hi steven,
kernel test robot noticed the following build warnings:
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/steven-chen/ima-copy-only-complete-measurement-records-across-kexec/20250305-031719
base: https://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git next-integrity
patch link: https://lore.kernel.org/r/20250304190351.96975-3-chenste%40linux.microsoft.com
patch subject: [PATCH v9 2/7] kexec: define functions to map and unmap segments
config: x86_64-randconfig-161-20250306 (https://download.01.org/0day-ci/archive/20250306/202503061449.gbVGafZc-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202503061449.gbVGafZc-lkp@intel.com/
smatch warnings:
kernel/kexec_core.c:896 kimage_map_segment() error: uninitialized symbol 'dest_page_addr'.
vim +/dest_page_addr +896 kernel/kexec_core.c
bf06eab7ae0f04 steven chen 2025-03-04 870 void *kimage_map_segment(struct kimage *image,
bf06eab7ae0f04 steven chen 2025-03-04 871 unsigned long addr, unsigned long size)
bf06eab7ae0f04 steven chen 2025-03-04 872 {
bf06eab7ae0f04 steven chen 2025-03-04 873 unsigned long eaddr = addr + size;
bf06eab7ae0f04 steven chen 2025-03-04 874 unsigned long src_page_addr, dest_page_addr;
bf06eab7ae0f04 steven chen 2025-03-04 875 unsigned int npages;
bf06eab7ae0f04 steven chen 2025-03-04 876 struct page **src_pages;
bf06eab7ae0f04 steven chen 2025-03-04 877 int i;
bf06eab7ae0f04 steven chen 2025-03-04 878 kimage_entry_t *ptr, entry;
bf06eab7ae0f04 steven chen 2025-03-04 879 void *vaddr = NULL;
bf06eab7ae0f04 steven chen 2025-03-04 880
bf06eab7ae0f04 steven chen 2025-03-04 881 /*
bf06eab7ae0f04 steven chen 2025-03-04 882 * Collect the source pages and map them in a contiguous VA range.
bf06eab7ae0f04 steven chen 2025-03-04 883 */
bf06eab7ae0f04 steven chen 2025-03-04 884 npages = PFN_UP(eaddr) - PFN_DOWN(addr);
bf06eab7ae0f04 steven chen 2025-03-04 885 src_pages = kmalloc_array(npages, sizeof(*src_pages), GFP_KERNEL);
bf06eab7ae0f04 steven chen 2025-03-04 886 if (!src_pages) {
bf06eab7ae0f04 steven chen 2025-03-04 887 pr_err("Could not allocate ima pages array.\n");
bf06eab7ae0f04 steven chen 2025-03-04 888 return NULL;
bf06eab7ae0f04 steven chen 2025-03-04 889 }
bf06eab7ae0f04 steven chen 2025-03-04 890
bf06eab7ae0f04 steven chen 2025-03-04 891 i = 0;
bf06eab7ae0f04 steven chen 2025-03-04 892 for_each_kimage_entry(image, ptr, entry) {
bf06eab7ae0f04 steven chen 2025-03-04 893 if (entry & IND_DESTINATION) {
bf06eab7ae0f04 steven chen 2025-03-04 894 dest_page_addr = entry & PAGE_MASK;
Is the first entry always IND_DESTINATION?
bf06eab7ae0f04 steven chen 2025-03-04 895 } else if (entry & IND_SOURCE) {
bf06eab7ae0f04 steven chen 2025-03-04 @896 if (dest_page_addr >= addr && dest_page_addr < eaddr) {
^^^^^^^^^^^^^^
otherwise this is uninitialized
bf06eab7ae0f04 steven chen 2025-03-04 897 src_page_addr = entry & PAGE_MASK;
bf06eab7ae0f04 steven chen 2025-03-04 898 src_pages[i++] =
bf06eab7ae0f04 steven chen 2025-03-04 899 virt_to_page(__va(src_page_addr));
bf06eab7ae0f04 steven chen 2025-03-04 900 if (i == npages)
bf06eab7ae0f04 steven chen 2025-03-04 901 break;
bf06eab7ae0f04 steven chen 2025-03-04 902 dest_page_addr += PAGE_SIZE;
bf06eab7ae0f04 steven chen 2025-03-04 903 }
bf06eab7ae0f04 steven chen 2025-03-04 904 }
bf06eab7ae0f04 steven chen 2025-03-04 905 }
bf06eab7ae0f04 steven chen 2025-03-04 906
bf06eab7ae0f04 steven chen 2025-03-04 907 /* Sanity check. */
bf06eab7ae0f04 steven chen 2025-03-04 908 WARN_ON(i < npages);
bf06eab7ae0f04 steven chen 2025-03-04 909
bf06eab7ae0f04 steven chen 2025-03-04 910 vaddr = vmap(src_pages, npages, VM_MAP, PAGE_KERNEL);
bf06eab7ae0f04 steven chen 2025-03-04 911 kfree(src_pages);
bf06eab7ae0f04 steven chen 2025-03-04 912
bf06eab7ae0f04 steven chen 2025-03-04 913 if (!vaddr)
bf06eab7ae0f04 steven chen 2025-03-04 914 pr_err("Could not map ima buffer.\n");
bf06eab7ae0f04 steven chen 2025-03-04 915
bf06eab7ae0f04 steven chen 2025-03-04 916 return vaddr;
bf06eab7ae0f04 steven chen 2025-03-04 917 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-03-06 6:35 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-04 19:03 [PATCH v9 0/7] ima: kexec: measure events between kexec load and execute steven chen
2025-03-04 19:03 ` [PATCH v9 1/7] ima: copy only complete measurement records across kexec steven chen
2025-03-05 2:08 ` Mimi Zohar
2025-03-05 11:34 ` Mimi Zohar
2025-03-05 12:08 ` Baoquan He
2025-03-05 12:27 ` Mimi Zohar
2025-03-06 22:45 ` steven chen
2025-03-07 2:51 ` Mimi Zohar
2025-03-11 12:44 ` Mimi Zohar
2025-03-11 23:45 ` steven chen
2025-03-04 19:03 ` [PATCH v9 2/7] kexec: define functions to map and unmap segments steven chen
2025-03-04 22:23 ` Jarkko Sakkinen
2025-03-05 0:55 ` steven chen
2025-03-05 12:24 ` Baoquan He
2025-03-17 18:26 ` steven chen
2025-03-06 6:35 ` Dan Carpenter [this message]
2025-03-04 19:03 ` [PATCH v9 3/7] ima: kexec: skip IMA segment validation after kexec soft reboot steven chen
2025-03-05 12:37 ` Baoquan He
2025-03-04 19:03 ` [PATCH v9 4/7] ima: kexec: define functions to copy IMA log at soft boot steven chen
2025-03-12 8:57 ` kernel test robot
2025-03-04 19:03 ` [PATCH v9 5/7] ima: kexec: move IMA log copy from kexec load to execute steven chen
2025-03-04 19:03 ` [PATCH v9 6/7] ima: make the kexec extra memory configurable steven chen
2025-03-04 19:03 ` [PATCH v9 7/7] ima: measure kexec load and exec events as critical data steven chen
2025-03-05 0:25 ` Mimi Zohar
2025-03-05 0:57 ` steven chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7bde870f-07eb-48a6-8b8d-edac57640775@stanley.mountain \
--to=dan.carpenter@linaro.org \
--cc=James.Bottomley@hansenpartnership.com \
--cc=bauermann@kolabnow.com \
--cc=bhe@redhat.com \
--cc=chenste@linux.microsoft.com \
--cc=code@tyhicks.com \
--cc=dyoung@redhat.com \
--cc=ebiederm@xmission.com \
--cc=eric.snowberg@oracle.com \
--cc=kexec@lists.infradead.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=lkp@intel.com \
--cc=madvenka@linux.microsoft.com \
--cc=nramas@linux.microsoft.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
--cc=paul@paul-moore.com \
--cc=roberto.sassu@huawei.com \
--cc=roberto.sassu@huaweicloud.com \
--cc=stefanb@linux.ibm.com \
--cc=vgoyal@redhat.com \
--cc=zohar@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox