x86/microcode: Allow only "1" as a late reload trigger value
authorAshok Raj <ashok.raj@intel.com>
Mon, 30 Jan 2023 21:39:48 +0000 (13:39 -0800)
committerBorislav Petkov (AMD) <bp@alien8.de>
Tue, 31 Jan 2023 15:47:03 +0000 (16:47 +0100)
Microcode gets reloaded late only if "1" is written to the reload file.
However, the code silently treats any other unsigned integer as a
successful write even though no actions are performed to load microcode.

Make the loader more strict to accept only "1" as a trigger value and
return an error otherwise.

  [ bp: Massage commit message. ]

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20230130213955.6046-3-ashok.raj@intel.com
arch/x86/kernel/cpu/microcode/core.c

index 61d57d9..fdd1e7e 100644 (file)
@@ -475,11 +475,8 @@ static ssize_t reload_store(struct device *dev,
        ssize_t ret = 0;
 
        ret = kstrtoul(buf, 0, &val);
-       if (ret)
-               return ret;
-
-       if (val != 1)
-               return size;
+       if (ret || val != 1)
+               return -EINVAL;
 
        cpus_read_lock();