Re: [PATCH RFC v2 01/10] arm_mpam: Fix the RIS index range check in mpam_ris_create_locked

From: Ben Horgan

Date: Fri Oct 02 2026 - 11:50:40 EST


Hi Yin,

On 14/09/2026 10:37, 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.
>
> 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>

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

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 dd422c56fbb1..6da217abf689 100644
> --- a/drivers/resctrl/mpam_devices.c
> +++ b/drivers/resctrl/mpam_devices.c
> @@ -552,7 +552,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))
>