Received: by 2002:ab3:689a:0:b0:1da:d01c:d2b2 with SMTP id t26csp3243ltj; Fri, 19 Aug 2022 15:50:03 -0700 (PDT) X-Google-Smtp-Source: AA6agR5ALoGwM8Mnih0TFuT7e/zoitQDB/XDyBqEMzZggYEKwOITf8F/Ojo3yhcOcAf/dwUch+I9 X-Received: by 2002:a05:6402:a56:b0:445:e9a8:303 with SMTP id bt22-20020a0564020a5600b00445e9a80303mr7643695edb.15.1660949403754; Fri, 19 Aug 2022 15:50:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660949403; cv=none; d=google.com; s=arc-20160816; b=Y9tEmlRM10UM5zF9W+GmeGb0Wm0wIWrSw1Zjvs5uSw8xAc+9onnwMbMMENNk2gxzoB SVMIFdjwUcWNbjVoiA0zwB0cI0rggNW/Hp7Q2DtanA6EWvqa+d13/7HVZ9JEIkCYFhyB sYI6KQg8vVmsyv+FlcdQCZ870y7TTSjCJ0SHRdDLFHIi5txQtJwpwqGaBxJku6mtpRZ6 ks81ylcjnTmNFDaf0IrnTvPOSTAdAYF8QMGYgBoe987ugNItqsBuM3hdFEi+KMvkr/Dn VGho2FTIA9TgyxrGhr7db7C0L7moWGKQ55BvP09UCEq1oLyXU7RPIA8tNJvSQiMSur8d MVyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=Erbhv9qJxxmv8I4xE++m4WGQox9PmBPC52DMICZWm0o=; b=JYKOH5e0Gxtmf9hWbqNKCUcmgvJHxucm20Lwj+IlwxjJMlg0CfhZcUWpvxjpPsAuKY xfkJQW89Zh88JCAtjQp7JFMkygT+vi6cppqbcw0okfImvmFTMj1w10PRxtJRGCCcpiyn NTv/3UaM0C+fjjzMJvSgGOxFi5qjBqfRJIWCC87xM5DY2F9P8iQs1p5e74V/ioevoqaZ rYmLAw/owXs/m7qlVwUl3ov+eMu1iS3lAWJB8VQWOl/8Sax8tfeNefn7sMYzoDt9Nohb iHLq16RsRxOLZosiZIY1sVUJC7AZ9sS3LzHFofaX9YZGe6qs81JyJ7FAyAy1CPOH3/+T himg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=K80i5SAo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hu8-20020a170907a08800b00730cd86905dsi3556262ejc.80.2022.08.19.15.49.37; Fri, 19 Aug 2022 15:50:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=K80i5SAo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242763AbiHSWoR (ORCPT + 99 others); Fri, 19 Aug 2022 18:44:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57498 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229497AbiHSWoQ (ORCPT ); Fri, 19 Aug 2022 18:44:16 -0400 Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com [IPv6:2607:f8b0:4864:20::1030]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D706F108FAE for ; Fri, 19 Aug 2022 15:44:15 -0700 (PDT) Received: by mail-pj1-x1030.google.com with SMTP id o14-20020a17090a0a0e00b001fabfd3369cso6116932pjo.5 for ; Fri, 19 Aug 2022 15:44:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc; bh=Erbhv9qJxxmv8I4xE++m4WGQox9PmBPC52DMICZWm0o=; b=K80i5SAoEGl+TSPxBtIbWRg1n6X1cknrKpHf4OAT7rIADMjckEdb+qnQ30HK17wLfJ JVWeukprhVmqiJ/jRYop9BQoJbei8wq0CHd02P+Kmx/1HPBF98dUfhUWcQ6gHEdaxkU/ FX7ug5WYMqGEhGW/PvQcSwcYX6agjFlhovm7rpVjbD+m1SjMFiyYhAVeTlRH+UOmqJ0P VQE3y4uL+TTAqoseZWZdKK6E/lsuWpsQuqdAUaFCCdp92EngsuiRtak+tNYIIIhQCBAZ 4d9GXkUBDN9tMuElwJXvZ/629tdsI40ul2fWWFCfJ8Q31xP/x1LpeehXZjMIKaFJT+VH 6Jaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc; bh=Erbhv9qJxxmv8I4xE++m4WGQox9PmBPC52DMICZWm0o=; b=RxuFHoDbpQbm7bW6Eq/NtZgUm3aitSJv+VUnCmiF7uzb38c5loWRt9ytkeClOIf8I7 DG3c1gJrzaUsnWYipj8z3cHtLPVeeCOPmUXYv+pCRvYHPDMuHaTrzlrHJBo9DP/u/VlG xwQOVPkMlIl77ONu1jj862ZNYnkbARJURewEGyqPv+pHKWz7l4BI0yXOB0DJtvws+I8F CJBFEjs5XqEehQjWcRWfOJAF10djyjTerTNGh8/J6Yo98DryYYhsNIvhd+YYYHhIuk5Z jmD0/IEFrO58Bx7Cu4m21Gh44oAgf1idnnTLXgl4YsU+HzxOjqhqADfYVVmKhsBA72Vj GTfw== X-Gm-Message-State: ACgBeo2rFJFgLeHU+vW4QKul5et1mbU7WHXtEdgGkJmcnwO87X7nmBNO ejfO0TS4HmrpVQBqrUuu+l+Isw1k0Fd/6xpY X-Received: by 2002:a17:90b:4c05:b0:1fa:e826:9da9 with SMTP id na5-20020a17090b4c0500b001fae8269da9mr4808127pjb.9.1660949054704; Fri, 19 Aug 2022 15:44:14 -0700 (PDT) Received: from localhost.localdomain ([47.154.96.63]) by smtp.gmail.com with ESMTPSA id u7-20020a170903124700b001726a4ad819sm3666230plh.114.2022.08.19.15.44.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Aug 2022 15:44:13 -0700 (PDT) From: Russ Dill X-Google-Original-From: Russ Dill To: linux-kernel@vger.kernel.org Cc: Russ Dill , Tom Lendacky , Ingo Molnar , Thomas Gleixner , Yinghai Lu , Dave Hansen , "H . Peter Anvin" , x86@kernel.org Subject: [PATCH] x86/boot: Fail gracefully if SMP MP-table early_memremap fails Date: Fri, 19 Aug 2022 15:44:00 -0700 Message-Id: <20220819224400.2667654-1-Russ.Dill@gmail.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org At least one older motherboard (Micronics W6-LI Pentium Pro) has been observed to fill in the physptr but not actually populate the mpc when only one CPU is present. In this specific case, this leads to the size field being zero which causes early_memremap to fail. This then causes a NULL pointer exception in smp_read_mpc. Add a simple return check. Returning -1 here will cause the MP-table to be ignored and the system to boot in nosmp mode. Signed-off-by: Russ Dill Cc: Tom Lendacky Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Yinghai Lu Cc: Dave Hansen Cc: H. Peter Anvin Cc: x86@kernel.org --- arch/x86/kernel/mpparse.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index fed721f90116..ca2af4f42cb8 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c @@ -438,6 +438,10 @@ static int __init check_physptr(struct mpf_intel *mpf, unsigned int early) size = get_mpc_size(mpf->physptr); mpc = early_memremap(mpf->physptr, size); + if (!mpc) { + pr_err("MPTABLE: mpc early_memremap() failed\n"); + return -1; + } /* * Read the physical hardware table. Anything here will -- 2.36.1