Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2737936yba; Mon, 22 Apr 2019 12:02:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqyBdtfWM9MECeNDgFtDuWKduFDwB+ZR6pw2hwBjTO1pFdBB2kUI4EUb5et5krPUNHTAK2tP X-Received: by 2002:a63:445d:: with SMTP id t29mr6148122pgk.303.1555959777595; Mon, 22 Apr 2019 12:02:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555959777; cv=none; d=google.com; s=arc-20160816; b=EXQbSZV74Rkp0bSHRIRZamXDU+xrE7obdCZOL2DM+UP9071bPljPHkUetBkkmSA7rC a74eACW7cmB6e1wlybYXMyfeUZ07JqlT3yjbTphfQtqpUOxIbY3UcCtOn8n38IA0kKL3 Ew9Pw2HeQck1mJ2XKRvdIWhR9DA7tjijwB/k6ASgKIYuIOASh0tppOY2WwlXRGk/jjNH VPHw9PAudDAcxGeF83CfCciH6DadbIjZtBCoDw6F4SSti2w5P9tJZIPAhWu78g8sZqO9 VqPIGdbCPR8aQ4AMOAqwUBuRGsAInxV+SmHKLcy80gkRUlaeaYyhRSrTWKL75EBrGZ+M qwYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=p6XVxxmeId6Fyrw7m3B0ifgQzW6nhwdk5H1SAhfRKS0=; b=HViYvbMbaPUPDWOX0kF0HlxNT1NBOlSvTuT5dXKxM+dS506BD6QYIVk7BnsqUnvl78 nS9CM1Dcdy/lxpWkYOASxjTYYtDLcOW2blqrIawuz/hF2BUFS42TST21+v+NazRp8rHW hf+kDiD+tA8DvdaPfM1l1OjTTwUyWrxa0Gv1vSxuAKwbPCFU/dR7F//n0lqJon7a8QOW 04sRhNj98eBE8il7KgBs6yK+6AgcWrhOgjqIw29/VaYkxtk40XKIirqlF4QZ19PPgmiA KIUuIqP8DPBjb8HLrPXDCbo+im4WlISQfgZ2h7HXl/lA3GpMs+YKpbPisIbA7xo9ma6J qnNg== 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=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e4si13168623pgn.237.2019.04.22.12.02.41; Mon, 22 Apr 2019 12:02:57 -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=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728831AbfDVS7H (ORCPT + 99 others); Mon, 22 Apr 2019 14:59:07 -0400 Received: from mga11.intel.com ([192.55.52.93]:60347 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728772AbfDVS6s (ORCPT ); Mon, 22 Apr 2019 14:58:48 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Apr 2019 11:58:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,382,1549958400"; d="scan'208";a="136417182" Received: from linksys13920.jf.intel.com (HELO rpedgeco-DESK5.jf.intel.com) ([10.54.75.11]) by orsmga008.jf.intel.com with ESMTP; 22 Apr 2019 11:58:42 -0700 From: Rick Edgecombe To: Borislav Petkov , Andy Lutomirski , Ingo Molnar Cc: linux-kernel@vger.kernel.org, x86@kernel.org, hpa@zytor.com, Thomas Gleixner , Nadav Amit , Dave Hansen , Peter Zijlstra , linux_dti@icloud.com, linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, akpm@linux-foundation.org, kernel-hardening@lists.openwall.com, linux-mm@kvack.org, will.deacon@arm.com, ard.biesheuvel@linaro.org, kristen@linux.intel.com, deneen.t.dock@intel.com, Nadav Amit , Rick Edgecombe Subject: [PATCH v4 22/23] tlb: provide default nmi_uaccess_okay() Date: Mon, 22 Apr 2019 11:58:04 -0700 Message-Id: <20190422185805.1169-23-rick.p.edgecombe@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190422185805.1169-1-rick.p.edgecombe@intel.com> References: <20190422185805.1169-1-rick.p.edgecombe@intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nadav Amit 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