From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753496AbcAGPAp (ORCPT ); Thu, 7 Jan 2016 10:00:45 -0500 Received: from mail-pa0-f44.google.com ([209.85.220.44]:35830 "EHLO mail-pa0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752073AbcAGPAm (ORCPT ); Thu, 7 Jan 2016 10:00:42 -0500 From: tim.gardner@canonical.com To: x86@kernel.org, linux-kernel@vger.kernel.org Cc: Tim Gardner , Borislav Petkov , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" Subject: [PATCH v4.4-rc8 4/4] x86/microcode/intel: get_matching_model_microcode: Squelch frame size warning Date: Thu, 7 Jan 2016 07:59:59 -0700 Message-Id: <1452178799-20878-5-git-send-email-tim.gardner@canonical.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1452178799-20878-1-git-send-email-tim.gardner@canonical.com> References: <1452178799-20878-1-git-send-email-tim.gardner@canonical.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tim Gardner arch/x86/kernel/cpu/microcode/intel.c: In function 'get_matching_model_microcode.isra.3.constprop': arch/x86/kernel/cpu/microcode/intel.c:348:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=] gcc version 5.3.1 20160101 (Ubuntu 5.3.1-5ubuntu1) Cc: Borislav Petkov Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Signed-off-by: Tim Gardner --- arch/x86/kernel/cpu/microcode/intel.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c index e019c11..03099ea 100644 --- a/arch/x86/kernel/cpu/microcode/intel.c +++ b/arch/x86/kernel/cpu/microcode/intel.c @@ -303,11 +303,16 @@ get_matching_model_microcode(int cpu, unsigned long start, enum ucode_state state = UCODE_OK; unsigned int mc_size; struct microcode_header_intel *mc_header; - struct microcode_intel *mc_saved_tmp[MAX_UCODE_COUNT]; + struct microcode_intel **mc_saved_tmp; unsigned int mc_saved_count = mc_saved_data->mc_saved_count; int i; - while (leftover && mc_saved_count < ARRAY_SIZE(mc_saved_tmp)) { + mc_saved_tmp = kcalloc(MAX_UCODE_COUNT, sizeof(*mc_saved_tmp), + GFP_KERNEL); + if (!mc_saved_tmp) + return UCODE_ERROR; + + while (leftover && mc_saved_count < MAX_UCODE_COUNT) { if (leftover < sizeof(mc_header)) break; @@ -352,6 +357,7 @@ get_matching_model_microcode(int cpu, unsigned long start, mc_saved_data->mc_saved_count = mc_saved_count; out: + kfree(mc_saved_tmp); return state; } -- 1.9.1