]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm_mpam: Stop using uninitialized variables in __ris_msmon_read()
authorBen Horgan <ben.horgan@arm.com>
Fri, 19 Dec 2025 18:11:03 +0000 (18:11 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 8 Jan 2026 19:03:15 +0000 (19:03 +0000)
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>
drivers/resctrl/mpam_devices.c

index 0b5b158e1aafbc1656f3c3492defbf33cb68a53c..b495d52918681bf433e42bde837eef0908c025bd 100644 (file)
@@ -1072,7 +1072,7 @@ static void __ris_msmon_read(void *arg)
        u64 now;
        bool nrdy = false;
        bool config_mismatch;
-       bool overflow;
+       bool overflow = false;
        struct mon_read *m = arg;
        struct mon_cfg *ctx = m->ctx;
        bool reset_on_next_read = false;
@@ -1176,10 +1176,11 @@ static void __ris_msmon_read(void *arg)
        }
        mpam_mon_sel_unlock(msc);
 
-       if (nrdy) {
+       if (nrdy)
                m->err = -EBUSY;
+
+       if (m->err)
                return;
-       }
 
        *m->val += now;
 }