From: Tim Gardner <[email protected]>

arch/x86/kernel/cpu/microcode/intel.c: In function 
'load_microcode.isra.2.constprop':
arch/x86/kernel/cpu/microcode/intel.c:130:1: warning: the frame size of 1032 
bytes is larger than 1024 bytes [-Wframe-larger-than=]

gcc version 5.3.1 20160101 (Ubuntu 5.3.1-5ubuntu1)

Cc: Borislav Petkov <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: "H. Peter Anvin" <[email protected]>
Signed-off-by: Tim Gardner <[email protected]>
---
 arch/x86/kernel/cpu/microcode/intel.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/cpu/microcode/intel.c 
b/arch/x86/kernel/cpu/microcode/intel.c
index ebf5e66..e019c11 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -111,22 +111,30 @@ static enum ucode_state
 load_microcode(struct mc_saved_data *mc_saved_data, unsigned long *initrd,
               unsigned long initrd_start, struct ucode_cpu_info *uci)
 {
-       struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT];
+       struct microcode_intel **mc_saved_tmp;
        unsigned int count = mc_saved_data->mc_saved_count;
+       enum ucode_state state;
+
+       mc_saved_tmp = kcalloc(MAX_UCODE_COUNT, sizeof(*mc_saved_tmp),
+               GFP_KERNEL);
+       if (!mc_saved_tmp)
+               return UCODE_ERROR;
 
        if (!mc_saved_data->mc_saved) {
                copy_initrd_ptrs(mc_saved_tmp, initrd, initrd_start, count);
 
-               return load_microcode_early(mc_saved_tmp, count, uci);
+               state = load_microcode_early(mc_saved_tmp, count, uci);
        } else {
 #ifdef CONFIG_X86_32
                microcode_phys(mc_saved_tmp, mc_saved_data);
-               return load_microcode_early(mc_saved_tmp, count, uci);
+               state = load_microcode_early(mc_saved_tmp, count, uci);
 #else
-               return load_microcode_early(mc_saved_data->mc_saved,
+               state = load_microcode_early(mc_saved_data->mc_saved,
                                                    count, uci);
 #endif
        }
+       kfree(mc_saved_tmp);
+       return state;
 }
 
 /*
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to