* [PATCH] arm_mpam: guard MBWU state before adding it to garbage
@ 2026-07-08 8:23 Guangshuo Li
2026-07-08 9:13 ` Ben Horgan
0 siblings, 1 reply; 2+ messages in thread
From: Guangshuo Li @ 2026-07-08 8:23 UTC (permalink / raw)
To: James Morse, Ben Horgan, Reinette Chatre, Fenghua Yu,
Catalin Marinas, Shaopeng Tan, Zeng Heng, linux-kernel
Cc: Guangshuo Li
__destroy_component_cfg() adds each RIS mbwu_state object to the MPAM
garbage list when destroying component configuration.
However, mbwu_state is allocated per RIS and only for RISes with MBWU
monitors. A component can therefore have comp->cfg allocated while some
RISes still have ris->mbwu_state set to NULL.
Passing a NULL mbwu_state to add_to_garbage() dereferences the NULL
pointer inside the macro.
Skip RISes that do not have an mbwu_state object before adding them to
the garbage list.
Fixes: 41e8a14950e1 ("arm_mpam: Track bandwidth counter state for power management")
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
---
drivers/resctrl/mpam_devices.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c
index b69f99488111..59225694255f 100644
--- a/drivers/resctrl/mpam_devices.c
+++ b/drivers/resctrl/mpam_devices.c
@@ -2606,8 +2606,10 @@ static void __destroy_component_cfg(struct mpam_component *comp)
msc = vmsc->msc;
if (mpam_mon_sel_lock(msc)) {
- list_for_each_entry(ris, &vmsc->ris, vmsc_list)
- add_to_garbage(ris->mbwu_state);
+ list_for_each_entry(ris, &vmsc->ris, vmsc_list) {
+ if (ris->mbwu_state)
+ add_to_garbage(ris->mbwu_state);
+ }
mpam_mon_sel_unlock(msc);
}
}
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] arm_mpam: guard MBWU state before adding it to garbage
2026-07-08 8:23 [PATCH] arm_mpam: guard MBWU state before adding it to garbage Guangshuo Li
@ 2026-07-08 9:13 ` Ben Horgan
0 siblings, 0 replies; 2+ messages in thread
From: Ben Horgan @ 2026-07-08 9:13 UTC (permalink / raw)
To: Guangshuo Li, James Morse, Reinette Chatre, Fenghua Yu,
Catalin Marinas, Shaopeng Tan, Zeng Heng, linux-kernel
Hi Guangshuo,
On 7/8/26 09:23, Guangshuo Li wrote:
> __destroy_component_cfg() adds each RIS mbwu_state object to the MPAM
> garbage list when destroying component configuration.
>
> However, mbwu_state is allocated per RIS and only for RISes with MBWU
> monitors. A component can therefore have comp->cfg allocated while some
> RISes still have ris->mbwu_state set to NULL.
>
> Passing a NULL mbwu_state to add_to_garbage() dereferences the NULL
> pointer inside the macro.
>
> Skip RISes that do not have an mbwu_state object before adding them to
> the garbage list.
>
> Fixes: 41e8a14950e1 ("arm_mpam: Track bandwidth counter state for power management")
> Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Good spot and thanks for the fix.
Reviewed-by: Ben Horgan <ben.horgan@arm.com>
> ---
> drivers/resctrl/mpam_devices.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c
> index b69f99488111..59225694255f 100644
> --- a/drivers/resctrl/mpam_devices.c
> +++ b/drivers/resctrl/mpam_devices.c
> @@ -2606,8 +2606,10 @@ static void __destroy_component_cfg(struct mpam_component *comp)
> msc = vmsc->msc;
>
> if (mpam_mon_sel_lock(msc)) {
> - list_for_each_entry(ris, &vmsc->ris, vmsc_list)
> - add_to_garbage(ris->mbwu_state);
> + list_for_each_entry(ris, &vmsc->ris, vmsc_list) {
> + if (ris->mbwu_state)
> + add_to_garbage(ris->mbwu_state);
> + }
> mpam_mon_sel_unlock(msc);
> }
> }
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-08 9:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-08 8:23 [PATCH] arm_mpam: guard MBWU state before adding it to garbage Guangshuo Li
2026-07-08 9:13 ` Ben Horgan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox