Received: by 10.213.65.68 with SMTP id h4csp580573imn; Fri, 23 Mar 2018 10:50:50 -0700 (PDT) X-Google-Smtp-Source: AG47ELsq9hYn9pK0WGSbWijmQX+EKUYMYvU7iRiIPDxDVeHNI1gwKgBJKlxaD3EX9TzXSNF/MbyZ X-Received: by 2002:a17:902:8206:: with SMTP id x6-v6mr23867067pln.256.1521827450792; Fri, 23 Mar 2018 10:50:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521827450; cv=none; d=google.com; s=arc-20160816; b=UDgyxlUQCnU26Omr2EjoTvxxO2xtcMZpXQWPJ532otDqWXxE5sHy8SjmlVhXbFHkmr xeBHWov9/X38TMvzOvLOcdKhVKo5F9W++TQm4K0i3Rn/JqvziT0N1m4gzk2jcT5Kt2Dp sOZScX9rsW7lBflOC9mvLtJcyArQpI9T7ZptLdj07kBpekumplz2cZMjX08+old8deJd 8dpN2D2qWnhX7CY08L6Tk1dhY3uYgK/NrLL5gYDNib1FiBft0dGNeNLe11emk+l1UjbW lNyfBQFeE/Zd4K0y2vNcmpWXe11UcbFu3UWW1ZlcCXWxoJoNckIAtMd4oY7WK1ZRgtpA /+5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:in-reply-to:references:date :from:cc:to:subject:arc-authentication-results; bh=0fNgr1rvEJLiuserDeKSkWmjDTtE7mGgZRKCPbHxCX8=; b=b/hOytBr7UHI5UA65dHVbSxOT5LF5hfpcr5sjHNE3nACKjm/Tl0QP9teT+3iWAW721 RjaIVMMHvhMWvFFotx5PsghTkk7tTDA1O8OjU0H870otSIBdoTnLfp4kvTOdLewz0xIL QMA6pjzo3hvkZM41GKLMRnXUI/nN9Uit7xL6AdSlKgO2QNEGQHPNJIDCk8lektFKDjAb mVeEQg2yJz8giHtx3YlvKp5aNqP8zRFrt0lMUx1OfUT9LPt2GOal7fEIBzyEKHl9iO4f 8SBsbdv44+hbJm+4SCbzZEBaaQUJxjlviImyAIgGEsbfUBQSKFQ4M3K4fDcG7/crd28i /46A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g17-v6si8784359plo.486.2018.03.23.10.50.36; Fri, 23 Mar 2018 10:50:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752315AbeCWRq5 (ORCPT + 99 others); Fri, 23 Mar 2018 13:46:57 -0400 Received: from mga17.intel.com ([192.55.52.151]:8626 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751901AbeCWRqz (ORCPT ); Fri, 23 Mar 2018 13:46:55 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Mar 2018 10:46:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,351,1517904000"; d="scan'208";a="28287479" Received: from viggo.jf.intel.com (HELO localhost.localdomain) ([10.54.39.119]) by orsmga006.jf.intel.com with ESMTP; 23 Mar 2018 10:46:54 -0700 Subject: [PATCH 04/11] x86/espfix: document use of _PAGE_GLOBAL To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, Dave Hansen , aarcange@redhat.com, luto@kernel.org, torvalds@linux-foundation.org, keescook@google.com, hughd@google.com, jgross@suse.com, x86@kernel.org, namit@vmware.com From: Dave Hansen Date: Fri, 23 Mar 2018 10:44:53 -0700 References: <20180323174447.55F35636@viggo.jf.intel.com> In-Reply-To: <20180323174447.55F35636@viggo.jf.intel.com> Message-Id: <20180323174453.3537F577@viggo.jf.intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Hansen The "normal" kernel page table creation mechanisms using PAGE_KERNEL_* page protections will never set _PAGE_GLOBAL with PTI. The few places in the kernel that always want _PAGE_GLOBAL must avoid using PAGE_KERNEL_*. Document that we want it here and its use is not accidental. Signed-off-by: Dave Hansen Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Kees Cook Cc: Hugh Dickins Cc: Juergen Gross Cc: x86@kernel.org Cc: Nadav Amit --- b/arch/x86/kernel/espfix_64.c | 4 ++++ 1 file changed, 4 insertions(+) diff -puN arch/x86/kernel/espfix_64.c~espfix-use-kern-defaults-not-supported arch/x86/kernel/espfix_64.c --- a/arch/x86/kernel/espfix_64.c~espfix-use-kern-defaults-not-supported 2018-03-21 16:31:57.951192318 -0700 +++ b/arch/x86/kernel/espfix_64.c 2018-03-21 16:31:57.954192318 -0700 @@ -195,6 +195,10 @@ void init_espfix_ap(int cpu) pte_p = pte_offset_kernel(&pmd, addr); stack_page = page_address(alloc_pages_node(node, GFP_KERNEL, 0)); + /* + * __PAGE_KERNEL_* includes _PAGE_GLOBAL, which we want since + * this is mapped to userspace. + */ pte = __pte(__pa(stack_page) | ((__PAGE_KERNEL_RO | _PAGE_ENC) & ptemask)); for (n = 0; n < ESPFIX_PTE_CLONES; n++) set_pte(&pte_p[n*PTE_STRIDE], pte); _