Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp339310yba; Fri, 26 Apr 2019 00:34:51 -0700 (PDT) X-Google-Smtp-Source: APXvYqxssC1ceYer7nFB9BAST4SgHV1mxnVfMd38V2cVJZ86shO6F0kdVV/R/BTyg9VsSQESCYot X-Received: by 2002:a17:902:8483:: with SMTP id c3mr42731846plo.19.1556264091299; Fri, 26 Apr 2019 00:34:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556264091; cv=none; d=google.com; s=arc-20160816; b=UInX/Kn96bJUePtIMyafM8C2knRFI1D+XIkDD1C+MjPH+b4LgMUC68vT+kogi8nXN0 W66O8PWMgY8VV7uGY9Qv8BK/U0SS0A2zxz4jnFI9SX9RNNXZSUWpq9lFe6HGbAe/8rbE N+foltXbM6SmzeH44/m7fkIhggxMB3WqKjQ7yW4TgYsCRUpmrQSkeTO9kCJiqaWs3jR6 JsfBundAQ1EwMdH4ew9WYGhTcsztg1daQdDmL4UkE4QK4IfElYJe5+IjsusCT4Z6t3hu VQNvaaU+hAwDMCexenJJ7tKeuIk5EiLxH8R2AztO6OzusWZ1hFZLAbowLT6JcSITWxRC TF+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=PQm9c3rdPLBXTcMKjbO2GS15ACOI1ILM5Qbwtu4lFBw=; b=Eq8sxQgLujnxmd4qk9zaQ+KSr/SUiv537WAUwhVf9CyDF5tk4utiMz0WdXyNPN5oil gpk0u1tGISZGBgqDWHN17iklH6kIgW2HTR2gQ3tYOQkmlNdLGvvR0slHZMb5g/Ya+2d0 aS7FIriKO5DTmhgjBNj5p/p+F9pyzoEL9Bp2pDUn08jZaNnrYImoC9Iz9WmwUT19ru7d kn1ZglPqSjGDZ7Pvb+tJYYnUuRUG3FAUzTYYF/7FPVYzqI3GVvwRYZwjqxHRY1lb2GH8 Za8jUi7SSJoqTs7LxSfaCnJ/ZLe1DNZLZcYVdDrDI5lsqHPpSphl+MOYNo9p3xKXzTLg Fq6Q== 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; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=vmware.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i1si22128781pgq.528.2019.04.26.00.34.36; Fri, 26 Apr 2019 00:34:51 -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; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=vmware.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726231AbfDZHdP (ORCPT + 99 others); Fri, 26 Apr 2019 03:33:15 -0400 Received: from ex13-edg-ou-001.vmware.com ([208.91.0.189]:2747 "EHLO EX13-EDG-OU-001.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726242AbfDZHbz (ORCPT ); Fri, 26 Apr 2019 03:31:55 -0400 Received: from sc9-mailhost3.vmware.com (10.113.161.73) by EX13-EDG-OU-001.vmware.com (10.113.208.155) with Microsoft SMTP Server id 15.0.1156.6; Fri, 26 Apr 2019 00:31:41 -0700 Received: from sc2-haas01-esx0118.eng.vmware.com (sc2-haas01-esx0118.eng.vmware.com [10.172.44.118]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id 296F2412A3; Fri, 26 Apr 2019 00:31:46 -0700 (PDT) From: Nadav Amit To: Peter Zijlstra , Borislav Petkov , Andy Lutomirski , Ingo Molnar CC: , , , Thomas Gleixner , Nadav Amit , Dave Hansen , , , , , , , , , , , Rick Edgecombe , Nadav Amit Subject: [PATCH v5 22/23] mm/tlb: Provide default nmi_uaccess_okay() Date: Thu, 25 Apr 2019 17:11:42 -0700 Message-ID: <20190426001143.4983-23-namit@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190426001143.4983-1-namit@vmware.com> References: <20190426001143.4983-1-namit@vmware.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: None (EX13-EDG-OU-001.vmware.com: namit@vmware.com does not designate permitted sender hosts) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org x86 has an nmi_uaccess_okay(), but other architectures do not. Arch-independent code might need to know whether access to user addresses is ok in an NMI context or in other code whose execution context is unknown. Specifically, this function is needed for bpf_probe_write_user(). Add a default implementation of nmi_uaccess_okay() for architectures that do not have such a function. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe --- arch/x86/include/asm/tlbflush.h | 2 ++ include/asm-generic/tlb.h | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h index 90926e8dd1f8..dee375831962 100644 --- a/arch/x86/include/asm/tlbflush.h +++ b/arch/x86/include/asm/tlbflush.h @@ -274,6 +274,8 @@ static inline bool nmi_uaccess_okay(void) return true; } +#define nmi_uaccess_okay nmi_uaccess_okay + /* Initialize cr4 shadow for this CPU. */ static inline void cr4_init_shadow(void) { diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index b9edc7608d90..480e5b2a5748 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h @@ -21,6 +21,15 @@ #include #include +/* + * Blindly accessing user memory from NMI context can be dangerous + * if we're in the middle of switching the current user task or switching + * the loaded mm. + */ +#ifndef nmi_uaccess_okay +# define nmi_uaccess_okay() true +#endif + #ifdef CONFIG_MMU /* -- 2.17.1