Re: [PATCH RFC 09/15] arm_mpam: Fix MSC MMIO window size to use resource_size() instead of end - start

From: Yin Li

Date: Thu Sep 03 2026 - 23:15:01 EST




On 9/3/2026 9:23 PM, Ben Horgan wrote:
Hi Yin,

On 03/09/2026 11:20, Ben Horgan wrote:
Hi Yin,

On 11/08/2026 14:30, Yin Li wrote:
struct resource uses an inclusive end address, so the correct size is
end - start + 1. The previous calculation of end - start was off by one,
resulting in a mapped window one byte smaller than the actual resource.
Use resource_size() which correctly computes end - start + 1.

Signed-off-by: Yin Li <yin.li@xxxxxxxxxxxxxxxx>

I just got a kernel ci report for this one which asks for tags:

Reported-by: kernel test robot <lkp@xxxxxxxxx>
Closes: https://lore.kernel.org/oe-kbuild-all/202609030809.ObirDhR3-lkp@xxxxxxxxx/

It doesn't look to give a useful fixes tag though. I'd go with this as that's where the error was
introduced.

Fixes: f04046f2577a ("arm_mpam: Add probe/remove for mpam msc driver and kbuild boiler plate")

Looks good to me.

Reviewed-by: Ben Horgan <ben.horgan@xxxxxxx>

Scratch that. As Ilpo points out,[1], there is no functional bug but just some misleading naming
which never the less would be good to fix. This does require > in the warnings becoming >= though
and there would be no need for fixes tag. Do you agree with this analysis?

Thanks,

Ben

[1]
https://lore.kernel.org/lkml/03055fbc-281f-4ed9-9282-4853d560e17f@xxxxxxx/T/#mdb57d40c888ff4ce656a9d9a00ecf5d99466530c



Hi Ben,

Thanks, and thanks to Ilpo for the detailed analysis.

Agreed — the current code is functionally correct because mapped_hwpage_sz holds the last mapped byte (end - start) rather than the real size, and the ">" check matches that.
My patch switched it to resource_size() but left the check as ">", which actually breaks that balance and introduces a real off-by-one — the ">" needs to become ">=" once the size is accurate. So there's no functional bug in the original code, and no Fixes tag is needed.

I'll update the patch to switch to resource_size() and change the
corresponding ">" checks to ">=" together, so the naming becomes
accurate while keeping the behaviour unchanged. I'll also reword the
commit message to describe this as a naming/readability cleanup rather
than a bugfix.



Thanks,

Ben

---
drivers/resctrl/mpam_devices.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c
index 1e082fb60e30..5d1854d97371 100644
--- a/drivers/resctrl/mpam_devices.c
+++ b/drivers/resctrl/mpam_devices.c
@@ -2296,7 +2296,7 @@ static struct mpam_msc *do_mpam_msc_drv_probe(struct platform_device *pdev)
dev_err_once(dev, "Failed to map MSC base address\n");
return ERR_CAST(io);
}
- msc->mapped_hwpage_sz = msc_res->end - msc_res->start;
+ msc->mapped_hwpage_sz = resource_size(msc_res);
msc->mapped_hwpage = io;
} else {
return ERR_PTR(-EINVAL);




--
Thx and BRs,
Yin