All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: robh@kernel.org, baoquan.he@linux.dev,
	"Wandun Chen" <chenwandun1@gmail.com>,
	rppt@kernel.org, m.szyprowski@samsung.com
Cc: saravanak@kernel.org, pjw@kernel.org, conor+dt@kernel.org,
	iommu@lists.linux.dev, ruirui.yang@linux.dev,
	linux-kernel@vger.kernel.org, mark.rutland@arm.com,
	loongarch@lists.linux.dev, tglx@kernel.org, bp@alien8.de,
	x86@kernel.org, pratyush@kernel.org, kexec@lists.infradead.org,
	chenhuacai@kernel.org, hpa@zytor.com, pasha.tatashin@soleen.com,
	mingo@redhat.com, linux-mm@kvack.org, robin.murphy@arm.com,
	linux-riscv@lists.infradead.org, aou@eecs.berkeley.edu,
	linux-arm-kernel@lists.infradead.org, alex@ghiti.fr,
	catalin.marinas@arm.com, will@kernel.org,
	devicetree@vger.kernel.org, dave.hansen@linux.intel.com,
	akpm@linux-foundation.org, palmer@dabbelt.com, kernel@xen0n.name
Subject: Re: [PATCH v7 8/9] of: reserved_mem: mark /memreserve/ entries as MEMBLOCK_NODUMP
Date: Tue, 22 Sep 2026 09:04:58 +0000	[thread overview]
Message-ID: <20260922090459.2B5581F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260922084256.1515554-9-chenwandun1@gmail.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] of/fdt: silent u64 truncation in fdt_mark_memreserve_nodump causes nodump false positives
--

commit 070ed699ada4d456618a640c6ad541abbec98f95
Author: Wandun Chen <chenwandun@lixiang.com>

of: reserved_mem: mark /memreserve/ entries as MEMBLOCK_NODUMP

The /memreserve/ entries are memory reservations made by the bootloader
or firmware, their contents are not needed for kernel crash analysis. This
commit marks them MEMBLOCK_NODUMP to omit them from the vmcore, while leaving
overlapping dumpable regions unmarked.

> diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c
> index f29a07e8fb23e..a42cf6eac55b5 100644
> --- a/drivers/of/of_reserved_mem.c
> +++ b/drivers/of/of_reserved_mem.c
[ ... ]
> @@ -251,6 +251,39 @@ static void __init __rmem_check_for_overlap(void)
>  	}
>  }
>  
> +void __init fdt_mark_memreserve_nodump(void)
> +{
> +	u64 base, size;
> +	int n;
> +	const void *fdt = initial_boot_params;
[ ... ]
> +		for (i = 0; i < reserved_mem_count; i++) {
> +			struct reserved_mem *rmem = &reserved_mem[i];
> +
> +			if (rmem->dumpable &&
> +			    base < (u64)rmem->base + (u64)rmem->size &&
> +			    (u64)rmem->base < base + size)
> +				break;
> +		}
> +		if (i == reserved_mem_count)
> +			memblock_mark_nodump(base, size);

[Severity: Medium]
Is there a risk of silent truncation here when passing u64 arguments to
memblock_mark_nodump() on 32-bit architectures?

The u64 base and size variables are passed directly to memblock_mark_nodump()
which takes phys_addr_t arguments. On a 32-bit architecture where phys_addr_t
is 32-bit, if the device tree contains a /memreserve/ entry with an address
greater than 4GB, fdt_mark_memreserve_nodump() reads it as a 64-bit value.

It performs a 64-bit overlap check against dumpable regions in reserved_mem.
Because the upper 32 bits differ, it concludes there is no overlap. It then
calls memblock_mark_nodump(), where the compiler silently truncates base to 32
bits.

Could this incorrectly mark the lower 32-bit address as MEMBLOCK_NODUMP,
mistakenly excluding any dumpable region located there that the overlap
check was intended to protect?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260922084256.1515554-1-chenwandun1@gmail.com?part=8


WARNING: multiple messages have this Message-ID (diff)
From: sashiko-bot@kernel.org
To: robh@kernel.org, baoquan.he@linux.dev,
	"Wandun Chen" <chenwandun1@gmail.com>,
	rppt@kernel.org, m.szyprowski@samsung.com
Cc: saravanak@kernel.org, pjw@kernel.org, conor+dt@kernel.org,
	iommu@lists.linux.dev, ruirui.yang@linux.dev,
	linux-kernel@vger.kernel.org, mark.rutland@arm.com,
	loongarch@lists.linux.dev, tglx@kernel.org, bp@alien8.de,
	x86@kernel.org, pratyush@kernel.org, kexec@lists.infradead.org,
	chenhuacai@kernel.org, hpa@zytor.com, pasha.tatashin@soleen.com,
	mingo@redhat.com, linux-mm@kvack.org, robin.murphy@arm.com,
	linux-riscv@lists.infradead.org, aou@eecs.berkeley.edu,
	linux-arm-kernel@lists.infradead.org, alex@ghiti.fr,
	catalin.marinas@arm.com, will@kernel.org,
	devicetree@vger.kernel.org, dave.hansen@linux.intel.com,
	akpm@linux-foundation.org, palmer@dabbelt.com, kernel@xen0n.name
Subject: Re: [PATCH v7 8/9] of: reserved_mem: mark /memreserve/ entries as MEMBLOCK_NODUMP
Date: Tue, 22 Sep 2026 09:04:58 +0000	[thread overview]
Message-ID: <20260922090459.2B5581F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260922084256.1515554-9-chenwandun1@gmail.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] of/fdt: silent u64 truncation in fdt_mark_memreserve_nodump causes nodump false positives
--

commit 070ed699ada4d456618a640c6ad541abbec98f95
Author: Wandun Chen <chenwandun@lixiang.com>

of: reserved_mem: mark /memreserve/ entries as MEMBLOCK_NODUMP

The /memreserve/ entries are memory reservations made by the bootloader
or firmware, their contents are not needed for kernel crash analysis. This
commit marks them MEMBLOCK_NODUMP to omit them from the vmcore, while leaving
overlapping dumpable regions unmarked.

> diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c
> index f29a07e8fb23e..a42cf6eac55b5 100644
> --- a/drivers/of/of_reserved_mem.c
> +++ b/drivers/of/of_reserved_mem.c
[ ... ]
> @@ -251,6 +251,39 @@ static void __init __rmem_check_for_overlap(void)
>  	}
>  }
>  
> +void __init fdt_mark_memreserve_nodump(void)
> +{
> +	u64 base, size;
> +	int n;
> +	const void *fdt = initial_boot_params;
[ ... ]
> +		for (i = 0; i < reserved_mem_count; i++) {
> +			struct reserved_mem *rmem = &reserved_mem[i];
> +
> +			if (rmem->dumpable &&
> +			    base < (u64)rmem->base + (u64)rmem->size &&
> +			    (u64)rmem->base < base + size)
> +				break;
> +		}
> +		if (i == reserved_mem_count)
> +			memblock_mark_nodump(base, size);

[Severity: Medium]
Is there a risk of silent truncation here when passing u64 arguments to
memblock_mark_nodump() on 32-bit architectures?

The u64 base and size variables are passed directly to memblock_mark_nodump()
which takes phys_addr_t arguments. On a 32-bit architecture where phys_addr_t
is 32-bit, if the device tree contains a /memreserve/ entry with an address
greater than 4GB, fdt_mark_memreserve_nodump() reads it as a 64-bit value.

It performs a 64-bit overlap check against dumpable regions in reserved_mem.
Because the upper 32 bits differ, it concludes there is no overlap. It then
calls memblock_mark_nodump(), where the compiler silently truncates base to 32
bits.

Could this incorrectly mark the lower 32-bit address as MEMBLOCK_NODUMP,
mistakenly excluding any dumpable region located there that the overlap
check was intended to protect?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260922084256.1515554-1-chenwandun1@gmail.com?part=8

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2026-09-22  9:05 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-22  8:42 [PATCH v7 0/9] kdump: reduce vmcore size and capture time Wandun Chen
2026-09-22  8:42 ` Wandun Chen
2026-09-22  8:42 ` [PATCH v7 1/9] riscv: build crash_mem ranges from memblock instead of resource tree Wandun Chen
2026-09-22  8:42   ` Wandun Chen
2026-09-22  8:59   ` sashiko-bot
2026-09-22  8:59     ` sashiko-bot
2026-09-22  8:42 ` [PATCH v7 2/9] crash_core: fold duplicated memblock arch hooks into the weak default Wandun Chen
2026-09-22  8:42   ` Wandun Chen
2026-09-22  8:56   ` sashiko-bot
2026-09-22  8:56     ` sashiko-bot
2026-09-22  8:42 ` [PATCH v7 3/9] crash_core: serialize crash header preparation against hotplug Wandun Chen
2026-09-22  8:42   ` Wandun Chen
2026-09-22  9:03   ` sashiko-bot
2026-09-22  9:03     ` sashiko-bot
2026-09-22  8:42 ` [PATCH v7 4/9] crash_core: replace for_each_mem_range() with for_each_mem_region() Wandun Chen
2026-09-22  8:42   ` Wandun Chen
2026-09-22  8:56   ` sashiko-bot
2026-09-22  8:56     ` sashiko-bot
2026-09-22  8:42 ` [PATCH v7 5/9] memblock: introduce MEMBLOCK_NODUMP flag Wandun Chen
2026-09-22  8:42   ` Wandun Chen
2026-09-22  9:02   ` sashiko-bot
2026-09-22  9:02     ` sashiko-bot
2026-09-22  8:42 ` [PATCH v7 6/9] of: reserved_mem: add dumpable flag to opt-in vmcore Wandun Chen
2026-09-22  8:42   ` Wandun Chen
2026-09-22  8:54   ` sashiko-bot
2026-09-22  8:54     ` sashiko-bot
2026-09-22  8:42 ` [PATCH v7 7/9] of: reserved_mem: mark /reserved-memory entries with MEMBLOCK_NODUMP Wandun Chen
2026-09-22  8:42   ` Wandun Chen
2026-09-22  9:01   ` sashiko-bot
2026-09-22  9:01     ` sashiko-bot
2026-09-22  8:42 ` [PATCH v7 8/9] of: reserved_mem: mark /memreserve/ entries as MEMBLOCK_NODUMP Wandun Chen
2026-09-22  8:42   ` Wandun Chen
2026-09-22  9:04   ` sashiko-bot [this message]
2026-09-22  9:04     ` sashiko-bot
2026-09-22  8:42 ` [PATCH v7 9/9] crash_core: skip MEMBLOCK_NODUMP regions when building vmcore ELF header Wandun Chen
2026-09-22  8:42   ` Wandun Chen
2026-09-22  9:02   ` sashiko-bot
2026-09-22  9:02     ` sashiko-bot
2026-10-02  8:17 ` [PATCH v7 0/9] kdump: reduce vmcore size and capture time Mike Rapoport
2026-10-02  8:17   ` Mike Rapoport
2026-10-09  3:04   ` Wandun
2026-10-09  3:04     ` Wandun
2026-10-09 16:26     ` Mike Rapoport
2026-10-09 16:26       ` Mike Rapoport
2026-10-09 17:10       ` Rob Herring
2026-10-09 17:10         ` Rob Herring

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=20260922090459.2B5581F000FF@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=alex@ghiti.fr \
    --cc=aou@eecs.berkeley.edu \
    --cc=baoquan.he@linux.dev \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=chenhuacai@kernel.org \
    --cc=chenwandun1@gmail.com \
    --cc=conor+dt@kernel.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hpa@zytor.com \
    --cc=iommu@lists.linux.dev \
    --cc=kernel@xen0n.name \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=loongarch@lists.linux.dev \
    --cc=m.szyprowski@samsung.com \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=palmer@dabbelt.com \
    --cc=pasha.tatashin@soleen.com \
    --cc=pjw@kernel.org \
    --cc=pratyush@kernel.org \
    --cc=robh@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=rppt@kernel.org \
    --cc=ruirui.yang@linux.dev \
    --cc=saravanak@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=tglx@kernel.org \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.