From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D696C3F2CD for ; Tue, 3 Mar 2020 02:50:20 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E665224684 for ; Tue, 3 Mar 2020 02:50:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="H40zml2k" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E665224684 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j8xdC-00046S-MJ; Tue, 03 Mar 2020 02:50:02 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j8xdC-000410-3q for xen-devel@lists.xenproject.org; Tue, 03 Mar 2020 02:50:02 +0000 X-Inumbo-ID: ad033988-5cf9-11ea-a060-12813bfff9fa Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id ad033988-5cf9-11ea-a060-12813bfff9fa; Tue, 03 Mar 2020 02:50:01 +0000 (UTC) Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A8E25246DE; Tue, 3 Mar 2020 02:49:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583203800; bh=vvd+ga9xtofA4LLzni39uzCH/EHz5pUxMLbMT7GfNUc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H40zml2kgyXVRbnqcAGHtoMRfX7t3oKMIB7K4wL5rOWAkFMwU0URxqrhZAOBm0T3n ej8DPmkJ7R15IhYnzCMX4iQD+478V3rSKxOiCyhnGrXpR1IBawyA/bXSfP4PURXzlm FGGlS1U3MgL9cMhjp93kUliX114MFcUMMU72rAAU= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Date: Mon, 2 Mar 2020 21:49:32 -0500 Message-Id: <20200303024933.10371-21-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200303024933.10371-1-sashal@kernel.org> References: <20200303024933.10371-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Subject: [Xen-devel] [PATCH AUTOSEL 4.14 21/22] x86/xen: Distribute switch variables for initialization X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Sasha Levin , Kees Cook , clang-built-linux@googlegroups.com, xen-devel@lists.xenproject.org, Boris Ostrovsky Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RnJvbTogS2VlcyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5vcmc+CgpbIFVwc3RyZWFtIGNvbW1p dCA5MDM4ZWM5OWNlYjk0ZmI4ZDkzYWRlNWUyMzZiMjkyOGYwNzkyYzdjIF0KClZhcmlhYmxlcyBk ZWNsYXJlZCBpbiBhIHN3aXRjaCBzdGF0ZW1lbnQgYmVmb3JlIGFueSBjYXNlIHN0YXRlbWVudHMK Y2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgaW5pdGlhbGl6ZWQgd2l0aCBjb21waWxlciBpbnN0cnVt ZW50YXRpb24gKGFzCnRoZXkgYXJlIG5vdCBwYXJ0IG9mIGFueSBleGVjdXRpb24gZmxvdykuIFdp dGggR0NDJ3MgcHJvcG9zZWQgYXV0b21hdGljCnN0YWNrIHZhcmlhYmxlIGluaXRpYWxpemF0aW9u IGZlYXR1cmUsIHRoaXMgdHJpZ2dlcnMgYSB3YXJuaW5nIChhbmQgdGhleQpkb24ndCBnZXQgaW5p dGlhbGl6ZWQpLiBDbGFuZydzIGF1dG9tYXRpYyBzdGFjayB2YXJpYWJsZSBpbml0aWFsaXphdGlv bgoodmlhIENPTkZJR19JTklUX1NUQUNLX0FMTD15KSBkb2Vzbid0IHRocm93IGEgd2FybmluZywg YnV0IGl0IGFsc28KZG9lc24ndCBpbml0aWFsaXplIHN1Y2ggdmFyaWFibGVzWzFdLiBOb3RlIHRo YXQgdGhlc2Ugd2FybmluZ3MgKG9yIHNpbGVudApza2lwcGluZykgaGFwcGVuIGJlZm9yZSB0aGUg ZGVhZC1zdG9yZSBlbGltaW5hdGlvbiBvcHRpbWl6YXRpb24gcGhhc2UsCnNvIGV2ZW4gd2hlbiB0 aGUgYXV0b21hdGljIGluaXRpYWxpemF0aW9ucyBhcmUgbGF0ZXIgZWxpZGVkIGluIGZhdm9yIG9m CmRpcmVjdCBpbml0aWFsaXphdGlvbnMsIHRoZSB3YXJuaW5ncyByZW1haW4uCgpUbyBhdm9pZCB0 aGVzZSBwcm9ibGVtcywgbW92ZSBzdWNoIHZhcmlhYmxlcyBpbnRvIHRoZSAiY2FzZSIgd2hlcmUK dGhleSdyZSB1c2VkIG9yIGxpZnQgdGhlbSB1cCBpbnRvIHRoZSBtYWluIGZ1bmN0aW9uIGJvZHku CgphcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2LmM6IEluIGZ1bmN0aW9uIOKAmHhlbl93cml0ZV9t c3Jfc2FmZeKAmToKYXJjaC94ODYveGVuL2VubGlnaHRlbl9wdi5jOjkwNDoxMjogd2FybmluZzog c3RhdGVtZW50IHdpbGwgbmV2ZXIgYmUgZXhlY3V0ZWQgWy1Xc3dpdGNoLXVucmVhY2hhYmxlXQog IDkwNCB8ICAgdW5zaWduZWQgd2hpY2g7CiAgICAgIHwgICAgICAgICAgICBefn5+fgoKWzFdIGh0 dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ5MTYKClNpZ25lZC1vZmYtYnk6 IEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPgpMaW5rOiBodHRwczovL2xvcmUua2Vy bmVsLm9yZy9yLzIwMjAwMjIwMDYyMzE4LjY5Mjk5LTEta2Vlc2Nvb2tAY2hyb21pdW0ub3JnClJl dmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Cltib3JpczogbWFkZSBA d2hpY2ggYW4gJ3Vuc2lnbmVkIGludCddClNpZ25lZC1vZmYtYnk6IEJvcmlzIE9zdHJvdnNreSA8 Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxz YXNoYWxAa2VybmVsLm9yZz4KLS0tCiBhcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2LmMgfCA3ICsr KystLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL2VubGlnaHRlbl9wdi5jIGIvYXJjaC94ODYveGVuL2Vu bGlnaHRlbl9wdi5jCmluZGV4IGY3OWEwY2RjNmI0ZTcuLjFmODE3NWJmMmE1ZTMgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW5fcHYuYworKysgYi9hcmNoL3g4Ni94ZW4vZW5saWdo dGVuX3B2LmMKQEAgLTkwOSwxNCArOTA5LDE1IEBAIHN0YXRpYyB1NjQgeGVuX3JlYWRfbXNyX3Nh ZmUodW5zaWduZWQgaW50IG1zciwgaW50ICplcnIpCiBzdGF0aWMgaW50IHhlbl93cml0ZV9tc3Jf c2FmZSh1bnNpZ25lZCBpbnQgbXNyLCB1bnNpZ25lZCBsb3csIHVuc2lnbmVkIGhpZ2gpCiB7CiAJ aW50IHJldDsKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJdW5zaWduZWQgaW50IHdoaWNoOworCXU2 NCBiYXNlOworI2VuZGlmCiAKIAlyZXQgPSAwOwogCiAJc3dpdGNoIChtc3IpIHsKICNpZmRlZiBD T05GSUdfWDg2XzY0Ci0JCXVuc2lnbmVkIHdoaWNoOwotCQl1NjQgYmFzZTsKLQogCWNhc2UgTVNS X0ZTX0JBU0U6CQl3aGljaCA9IFNFR0JBU0VfRlM7IGdvdG8gc2V0OwogCWNhc2UgTVNSX0tFUk5F TF9HU19CQVNFOgl3aGljaCA9IFNFR0JBU0VfR1NfVVNFUjsgZ290byBzZXQ7CiAJY2FzZSBNU1Jf R1NfQkFTRToJCXdoaWNoID0gU0VHQkFTRV9HU19LRVJORUw7IGdvdG8gc2V0OwotLSAKMi4yMC4x CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C64D6C3F2CD for ; Tue, 3 Mar 2020 02:52:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9ACDF2166E for ; Tue, 3 Mar 2020 02:52:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583203936; bh=vvd+ga9xtofA4LLzni39uzCH/EHz5pUxMLbMT7GfNUc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=kMWmQkvfFUQ+zer90OrKBMIt1XfBtffJxbBrQ6r75nYmoHaEI7wGCRdqeSU0FE2Aq 7VtmwLeGPBndSgKshPJDitEONpP24dmoT1Kr1ggnG8eTtIUycP0Cw8Yt78Sn0jrEZd BZ6afvPwgqUGFzFHPnX75USTZh4cXy0hD1RKoVBM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729062AbgCCCuF (ORCPT ); Mon, 2 Mar 2020 21:50:05 -0500 Received: from mail.kernel.org ([198.145.29.99]:46584 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729035AbgCCCuA (ORCPT ); Mon, 2 Mar 2020 21:50:00 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A8E25246DE; Tue, 3 Mar 2020 02:49:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583203800; bh=vvd+ga9xtofA4LLzni39uzCH/EHz5pUxMLbMT7GfNUc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H40zml2kgyXVRbnqcAGHtoMRfX7t3oKMIB7K4wL5rOWAkFMwU0URxqrhZAOBm0T3n ej8DPmkJ7R15IhYnzCMX4iQD+478V3rSKxOiCyhnGrXpR1IBawyA/bXSfP4PURXzlm FGGlS1U3MgL9cMhjp93kUliX114MFcUMMU72rAAU= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kees Cook , Juergen Gross , Boris Ostrovsky , Sasha Levin , xen-devel@lists.xenproject.org, clang-built-linux@googlegroups.com Subject: [PATCH AUTOSEL 4.14 21/22] x86/xen: Distribute switch variables for initialization Date: Mon, 2 Mar 2020 21:49:32 -0500 Message-Id: <20200303024933.10371-21-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200303024933.10371-1-sashal@kernel.org> References: <20200303024933.10371-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kees Cook [ Upstream commit 9038ec99ceb94fb8d93ade5e236b2928f0792c7c ] Variables declared in a switch statement before any case statements cannot be automatically initialized with compiler instrumentation (as they are not part of any execution flow). With GCC's proposed automatic stack variable initialization feature, this triggers a warning (and they don't get initialized). Clang's automatic stack variable initialization (via CONFIG_INIT_STACK_ALL=y) doesn't throw a warning, but it also doesn't initialize such variables[1]. Note that these warnings (or silent skipping) happen before the dead-store elimination optimization phase, so even when the automatic initializations are later elided in favor of direct initializations, the warnings remain. To avoid these problems, move such variables into the "case" where they're used or lift them up into the main function body. arch/x86/xen/enlighten_pv.c: In function ‘xen_write_msr_safe’: arch/x86/xen/enlighten_pv.c:904:12: warning: statement will never be executed [-Wswitch-unreachable] 904 | unsigned which; | ^~~~~ [1] https://bugs.llvm.org/show_bug.cgi?id=44916 Signed-off-by: Kees Cook Link: https://lore.kernel.org/r/20200220062318.69299-1-keescook@chromium.org Reviewed-by: Juergen Gross [boris: made @which an 'unsigned int'] Signed-off-by: Boris Ostrovsky Signed-off-by: Sasha Levin --- arch/x86/xen/enlighten_pv.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c index f79a0cdc6b4e7..1f8175bf2a5e3 100644 --- a/arch/x86/xen/enlighten_pv.c +++ b/arch/x86/xen/enlighten_pv.c @@ -909,14 +909,15 @@ static u64 xen_read_msr_safe(unsigned int msr, int *err) static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high) { int ret; +#ifdef CONFIG_X86_64 + unsigned int which; + u64 base; +#endif ret = 0; switch (msr) { #ifdef CONFIG_X86_64 - unsigned which; - u64 base; - case MSR_FS_BASE: which = SEGBASE_FS; goto set; case MSR_KERNEL_GS_BASE: which = SEGBASE_GS_USER; goto set; case MSR_GS_BASE: which = SEGBASE_GS_KERNEL; goto set; -- 2.20.1