Received: by 2002:a4a:311b:0:0:0:0:0 with SMTP id k27-v6csp4805182ooa; Tue, 14 Aug 2018 10:47:36 -0700 (PDT) X-Google-Smtp-Source: AA+uWPxgIrZnSkAl4oGgvDXTcwtSIJDTggu7pe0Vq1ilglC+R2Di8TAevuG6EmDqJcopAdYgQE5y X-Received: by 2002:a62:cd82:: with SMTP id o124-v6mr24244999pfg.206.1534268855954; Tue, 14 Aug 2018 10:47:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534268855; cv=none; d=google.com; s=arc-20160816; b=eqaPHmxaQYkmie622eBqx0pUhlSWwtGvPRiI9Kn+I6xtutyj0kY0rO56dkOXoyAr8n ipK8VIq1cctJeHVxzYnLRqoCfclnUIXwul/ogK1krHmOBEOvTPPgFos6JB56pa1jnhqw 1fD7FiqThD/yJjTuDuRitEavUETMlcbwLsfHtmmeQ02iQPEpUMFJ4ayjCI+RWCVxxQnA NArprqpATeNuHOF8JjMWIeev6tMw7Foml+jqFoiUJo3C9Rft1UbgzO0tat+EZZwFM3Gz dIJjckTrTO5aMfBdivAoY1EkA4Ts7ByAxL3I4WWt9C/4LUVVEuL/UjrLy4DPxHEj4Rjd r10A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=SZtvUghyXg16NCaPc9CdAcjihE1KD244Kt6li0ZXZTo=; b=F8oS6cUOxt9WR/2s9vhj19N1TZdTajUxNXXNtaK46AyrjVP4HEEXSH62uJCJBoJN1t SGSjVFq0yPhj1X7m33vMC0KOkcgxbONlZkGGx8YgY7FiqHTJ6nZ24s53u2JT8aKKwvr9 zbAeDOKz9vT5OT4QW0nX/U1deVblKeeSaYrjmP5V06p0NEAYKhv1cLCPwm/ugVjnLqoV hoybfPZap18khY48eJTIBm4LEo0IPkkLXxQpPuP9bIM63N4+v90q3UkMc9TbTzcbrNTM lieVn8d6U+qovckPFlVnuHkQ2PKWDpxwvQboRCVpJBx6PnE+2IJT7RZKdLKwPPqSH4+P lnhw== 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 g6-v6si11510397plm.181.2018.08.14.10.47.21; Tue, 14 Aug 2018 10:47:35 -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 S2390968AbeHNUd5 (ORCPT + 99 others); Tue, 14 Aug 2018 16:33:57 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:60286 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388101AbeHNUd5 (ORCPT ); Tue, 14 Aug 2018 16:33:57 -0400 Received: from localhost (unknown [194.244.16.108]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 1DFCBCBA; Tue, 14 Aug 2018 17:45:44 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Andi Kleen , Thomas Gleixner , David Woodhouse Subject: [PATCH 4.9 102/107] x86/speculation/l1tf: Make pmd/pud_mknotpresent() invert Date: Tue, 14 Aug 2018 19:18:05 +0200 Message-Id: <20180814171526.918806307@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180814171520.883143803@linuxfoundation.org> References: <20180814171520.883143803@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Andi Kleen commit 0768f91530ff46683e0b372df14fd79fe8d156e5 upstream Some cases in THP like: - MADV_FREE - mprotect - split mark the PMD non present for temporarily to prevent races. The window for an L1TF attack in these contexts is very small, but it wants to be fixed for correctness sake. Use the proper low level functions for pmd/pud_mknotpresent() to address this. Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman --- arch/x86/include/asm/pgtable.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -350,11 +350,6 @@ static inline pmd_t pmd_mkwrite(pmd_t pm return pmd_set_flags(pmd, _PAGE_RW); } -static inline pmd_t pmd_mknotpresent(pmd_t pmd) -{ - return pmd_clear_flags(pmd, _PAGE_PRESENT | _PAGE_PROTNONE); -} - #ifdef CONFIG_HAVE_ARCH_SOFT_DIRTY static inline int pte_soft_dirty(pte_t pte) { @@ -418,6 +413,12 @@ static inline pmd_t pfn_pmd(unsigned lon return __pmd(pfn | massage_pgprot(pgprot)); } +static inline pmd_t pmd_mknotpresent(pmd_t pmd) +{ + return pfn_pmd(pmd_pfn(pmd), + __pgprot(pmd_flags(pmd) & ~(_PAGE_PRESENT|_PAGE_PROTNONE))); +} + static inline u64 flip_protnone_guard(u64 oldval, u64 val, u64 mask); static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)