[PATCH RFC 12/15] arm_mpam: Fix get_cpumask_from_cache() to clear mask on error
From: Yin Li
Date: Tue Aug 11 2026 - 09:59:25 EST
If mpam_get_cpumask_from_cache_id() fails, the affinity mask may have
been partially filled before the error occurred. The caller has no way
to distinguish a partial mask from a valid one, so it may misuse the
incomplete result.
Clear the affinity mask before returning the error so the caller always
receives either a fully valid mask or an empty one.
Co-developed-by: Huang Yiwei <huang.yiwei@xxxxxxxxxxxxxxxx>
Signed-off-by: Huang Yiwei <huang.yiwei@xxxxxxxxxxxxxxxx>
Signed-off-by: Yin Li <yin.li@xxxxxxxxxxxxxxxx>
---
drivers/resctrl/mpam_devices.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c
index eac3bc695fd1..d8856864e89a 100644
--- a/drivers/resctrl/mpam_devices.c
+++ b/drivers/resctrl/mpam_devices.c
@@ -243,7 +243,12 @@ static int get_cpumask_from_cache(struct device_node *cache,
return -ENOENT;
}
- return mpam_get_cpumask_from_cache_id(cache_id, cache_level, affinity);
+ err = mpam_get_cpumask_from_cache_id(cache_id, cache_level, affinity);
+ if (err)
+ /* Don't leave a partially-filled mask for the caller to misuse */
+ cpumask_clear(affinity);
+
+ return err;
}
static int mpam_dt_count_msc(void)
--
2.34.1