Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

arm_mpam: Stop using uninitialized variables in __ris_msmon_read()

Dan has reported two uses of uninitialized variables in __ris_msmon_read().
If an unknown monitor type is encountered then the local variable, now, is
used uninitialized. Fix this by returning early on error. If a non-mbwu
monitor is being read then the local variable, overflow, is not initialized
but still read. Initialize it to false as overflow is not relevant for csu
monitors.

Fixes: 823e7c3712c5 ("arm_mpam: Add mpam_msmon_read() to read monitor value")
Fixes: 9e5afb7c3283 ("arm_mpam: Use long MBWU counters if supported")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/202512091519.RBwiJcSq-lkp@intel.com/
Closes: https://lore.kernel.org/r/202512100547.N7QPYgfb-lkp@intel.com/
Signed-off-by: Ben Horgan <ben.horgan@arm.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>

authored by

Ben Horgan and committed by
Catalin Marinas
c2803bd5 dd4d71f5

+4 -3
+4 -3
drivers/resctrl/mpam_devices.c
··· 1072 1072 u64 now; 1073 1073 bool nrdy = false; 1074 1074 bool config_mismatch; 1075 - bool overflow; 1075 + bool overflow = false; 1076 1076 struct mon_read *m = arg; 1077 1077 struct mon_cfg *ctx = m->ctx; 1078 1078 bool reset_on_next_read = false; ··· 1176 1176 } 1177 1177 mpam_mon_sel_unlock(msc); 1178 1178 1179 - if (nrdy) { 1179 + if (nrdy) 1180 1180 m->err = -EBUSY; 1181 + 1182 + if (m->err) 1181 1183 return; 1182 - } 1183 1184 1184 1185 *m->val += now; 1185 1186 }