Re: [PATCH RFC 07/15] arm_mpam: Fix the RIS index range check in mpam_ris_create_locked

From: Yin Li

Date: Thu Sep 03 2026 - 04:42:21 EST




On 9/2/2026 10:50 PM, Andre Przywara wrote:
Hi,

On 8/11/26 15:30, Yin Li wrote:
The RIS selector field is defined as MPAMCFG_PART_SEL_RIS (bits 27:24),
which is 4 bits wide and gives valid indices 0..15. MPAM_MSC_MAX_NUM_RIS
is defined as 16, so the check should use >= to reject index 16 and
above. The previous > check incorrectly accepted index 16 as valid.

Indeed. Either the maintainers pick this one independently, or put it up front in any repost.

And add:
Fixes: 01fb4b822472 ("arm_mpam: Add the class and component structures for firmware described ris")

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

Reviewed-by: Andre Przywara <andre.przywara@xxxxxxx>


Hi Andre,

Thanks for the review and the Reviewed-by tag.

Agreed — this is an independent fix to existing code, so I'll move it to
the front of the series in the next repost and add the Fixes tag.

Cheers,
Andre

---
  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 ddc15249ec1e..cc9fa1d78925 100644
--- a/drivers/resctrl/mpam_devices.c
+++ b/drivers/resctrl/mpam_devices.c
@@ -725,7 +725,7 @@ static int mpam_ris_create_locked(struct mpam_msc *msc, u8 ris_idx,
      lockdep_assert_held(&mpam_list_lock);
-    if (ris_idx > MPAM_MSC_MAX_NUM_RIS)
+    if (ris_idx >= MPAM_MSC_MAX_NUM_RIS)
          return -EINVAL;
      if (test_and_set_bit(ris_idx, &msc->ris_idxs))



--
Thx and BRs,
Yin