diff options
| author | Ashok Raj <ashok.raj@intel.com> | 2023-01-30 13:39:48 -0800 | 
|---|---|---|
| committer | Borislav Petkov (AMD) <bp@alien8.de> | 2023-01-31 16:47:03 +0100 | 
| commit | 25d0dc4b957cc8674f8554e85f18a00467e876d7 (patch) | |
| tree | 47d159c908305f56818e2bad0656ae994f5cac2f /arch/x86/kernel/cpu/microcode/core.c | |
| parent | a9a5cac225b0830d1879640e25231a37e537f0da (diff) | |
x86/microcode: Allow only "1" as a late reload trigger value
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
Diffstat (limited to 'arch/x86/kernel/cpu/microcode/core.c')
| -rw-r--r-- | arch/x86/kernel/cpu/microcode/core.c | 7 | 
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c index 61d57d9b93ee..fdd1e7eb90f9 100644 --- a/arch/x86/kernel/cpu/microcode/core.c +++ b/arch/x86/kernel/cpu/microcode/core.c @@ -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();  | 
