Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp5674291iog; Thu, 23 Jun 2022 03:07:11 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vLnjpKVbrw/0P6DOs/teCbHQQcN2yUbDG0+iBoJz7ZqaRg0Qy6EXbcS7ptFftm77z8+3dv X-Received: by 2002:a17:906:1003:b0:718:c108:663c with SMTP id 3-20020a170906100300b00718c108663cmr7375130ejm.252.1655978830725; Thu, 23 Jun 2022 03:07:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655978830; cv=none; d=google.com; s=arc-20160816; b=x7hYbGhxFePX+mjzMPyjEStiZiEIpJxhD/X5NtUpJcrfISUtPt+Xqy5hu40fccM+hf F+CUfntWrbc/lPGn0QskVYifLQWbR2pX3xDFSN8wK4B+Dlw5dKd1Vg1/6W5JqLi1+YdW 5AXDznP+YpP9vVpw7qpnvuyTky0E+kfjHzpBQvG+l8EGkNfhcUJLX+m8YOlJupDUaQ2C CC4U0my46NuUuHIksAQ2khXEoXcyhJ3VZn5+Xw9U5doFLS0iEM49HZenwnFVu2hdzCaQ OkjKjUQkoFrh2aAb6L0m4UL9cChEZEoYjMDMZ6xbCP1BmsLyP2iypFbUyuSP5MnDLW1Z k/rQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=JeJlzEy9S9HO3UBMbEaEgVpv+aw7L6zfG0jvSaFE4ro=; b=WVR9d8hFDTW/5r9JEjyIXWY6JphdAfTWZx3nAE8h1Llx/PLW2JJi6fD60VE0aVXRBK LZnbRjOvyXIZ41Bj6KSA9liGvmaORlHyJAkNI5GBwS2CyhUSk5f6TRDTg+++YuWqqgUD txOfKQv+Oyl/AWTiU1H34HSlAq86oPunDn6D4ymlwSsE98jQLKd7pRtVEPGiim1VrfFU RTrN42ArVAKaA1WEpW2TOrzl2mE6r+Jvjrl2P9ybPkgZm8vA0lihxcQFFnxP1775c/vD bHRngLEj6JLmA3w5BDl2XhkviFrO9WDSDbb+g79Fuf1q4pU0w8GJf50FOB506ukDVoAM /iwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=XTE+RGVo; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z18-20020a17090674d200b00722eb684a60si5655055ejl.979.2022.06.23.03.06.44; Thu, 23 Jun 2022 03:07:10 -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=@suse.com header.s=susede1 header.b=XTE+RGVo; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231234AbiFWJqW (ORCPT + 99 others); Thu, 23 Jun 2022 05:46:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48266 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231151AbiFWJqO (ORCPT ); Thu, 23 Jun 2022 05:46:14 -0400 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 484B049927 for ; Thu, 23 Jun 2022 02:46:13 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id B6B731FD8B; Thu, 23 Jun 2022 09:46:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1655977571; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JeJlzEy9S9HO3UBMbEaEgVpv+aw7L6zfG0jvSaFE4ro=; b=XTE+RGVoZDWEOCRBYwyFcbohYpKJ0tpbYKgmRUWXHS0+VkUaHPYT85AzuVlQqwIoTHLAGh tgsvveadD+BFZE0w4NEj2C0G9PIi/KMBvbG23r1w+/0eAt/LTSkuq9N7QERf5nCB7vjHbS 0Tqza47Z5amQO5OYJVc/LVLFHU2SiTw= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7291713AB2; Thu, 23 Jun 2022 09:46:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 4A6NGmM2tGLmLwAAMHmgww (envelope-from ); Thu, 23 Jun 2022 09:46:11 +0000 From: Juergen Gross To: xen-devel@lists.xenproject.org, x86@kernel.org, linux-kernel@vger.kernel.org Cc: Juergen Gross , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" Subject: [PATCH v2 2/3] x86: fix setup of brk area Date: Thu, 23 Jun 2022 11:46:07 +0200 Message-Id: <20220623094608.7294-3-jgross@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20220623094608.7294-1-jgross@suse.com> References: <20220623094608.7294-1-jgross@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,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 Commit e32683c6f7d2 ("x86/mm: Fix RESERVE_BRK() for older binutils") put the brk area into the .bss..brk section (placed directly behind .bss), causing it not to be cleared initially. As the brk area is used to allocate early page tables, these might contain garbage in not explicitly written entries. This is especially a problem for Xen PV guests, as the hypervisor will validate page tables (check for writable page tables and hypervisor private bits) before accepting them to be used. There have been reports of early crashes of PV guests due to illegal page table contents. Fix that by letting clear_bss() clear the brk area, too. Fixes: e32683c6f7d2 ("x86/mm: Fix RESERVE_BRK() for older binutils") Signed-off-by: Juergen Gross --- arch/x86/kernel/head64.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index e7e233209a8c..6a3cfaf6b72a 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -430,6 +430,8 @@ void __init clear_bss(void) { memset(__bss_start, 0, (unsigned long) __bss_stop - (unsigned long) __bss_start); + memset(__brk_base, 0, + (unsigned long) __brk_limit - (unsigned long) __brk_base); } static unsigned long get_cmd_line_ptr(void) -- 2.35.3