From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756456AbbCCPLO (ORCPT ); Tue, 3 Mar 2015 10:11:14 -0500 Received: from numascale.com ([213.162.240.84]:47747 "EHLO numascale.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753930AbbCCPLM (ORCPT ); Tue, 3 Mar 2015 10:11:12 -0500 From: Daniel J Blueman To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" Cc: Daniel J Blueman , Quentin Casasnovas , Steffen Persvold , linux-kernel@vger.kernel.org, x86@kernel.org Subject: [PATCH] x86: Unbreak early processor microcode loading Date: Tue, 3 Mar 2015 23:10:44 +0800 Message-Id: <1425395444-20969-1-git-send-email-daniel@numascale.com> X-Mailer: git-send-email 1.9.1 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cpanel21.proisp.no X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - numascale.com X-Get-Message-Sender-Via: cpanel21.proisp.no: authenticated_id: daniel@numascale.com X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The changes in 871b72dd "x86: microcode: use smp_call_function_single instead of set_cpus_allowed, cleanup of synchronization logic" introduced a check that prevents built-in microcode from being loaded before init starts. Conditionalise it on early microcode loading, so we get the expected behaviour when early microcode loading is enabled, and when it is not. This has potential importance as BIOSes often don't load the current microcode. Signed-off-by: Daniel J Blueman --- arch/x86/kernel/cpu/microcode/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c index 36a8361..fa7f9fc 100644 --- a/arch/x86/kernel/cpu/microcode/core.c +++ b/arch/x86/kernel/cpu/microcode/core.c @@ -391,9 +391,11 @@ static enum ucode_state microcode_init_cpu(int cpu, bool refresh_fw) if (collect_cpu_info(cpu)) return UCODE_ERROR; +#if !defined(CONFIG_MICROCODE_AMD_EARLY) && !defined(CONFIG_MICROCODE_INTEL_EARLY) /* --dimm. Trigger a delayed update? */ if (system_state != SYSTEM_RUNNING) return UCODE_NFOUND; +#endif ustate = microcode_ops->request_microcode_fw(cpu, µcode_pdev->dev, refresh_fw); -- 2.1.0