diff options
| author | Guangshuo Li <lgs201920130244@gmail.com> | 2026-07-08 16:23:23 +0800 |
|---|---|---|
| committer | Will Deacon <will@kernel.org> | 2026-07-16 14:46:27 +0100 |
| commit | 977f52909c624210178a1247fab0b02b110c1106 (patch) | |
| tree | 6ab7707ae9c3e3f8fb89a5377a93f0ed5c9ed4ba /drivers/resctrl | |
| parent | 021118ce5ea954ec316d7e30bcf4506e12eb5222 (diff) | |
| download | linux-977f52909c624210178a1247fab0b02b110c1106.tar.gz linux-977f52909c624210178a1247fab0b02b110c1106.tar.bz2 linux-977f52909c624210178a1247fab0b02b110c1106.zip | |
arm_mpam: guard MBWU state before adding it to garbage
__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>
Reviewed-by: Ben Horgan <ben.horgan@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'drivers/resctrl')
| -rw-r--r-- | drivers/resctrl/mpam_devices.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 8e48b918ae54..2f09f4b78bd3 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -2612,8 +2612,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); } } |