Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2003252imu; Fri, 14 Dec 2018 04:20:42 -0800 (PST) X-Google-Smtp-Source: AFSGD/UrJGG/m/H6kgALg5LIcXzLxEgcOwGNf+EUu3aC6kHYdDN+GucIW3roqx2HmHSM4F0hoy/o X-Received: by 2002:a65:6392:: with SMTP id h18mr2546971pgv.107.1544790042409; Fri, 14 Dec 2018 04:20:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544790042; cv=none; d=google.com; s=arc-20160816; b=LoV2+k525KtSLPNQf3EYeInoNVoMs6FarLd/eXfufeigpbR0o8DxnTPCxx2F3xvRWp ZKvdOeW9x8O8x58hR9/WJiLhF7eh2FysGqnSQPkCKI1co7qi+IdTLitSTXCnJef32duk DDZx8a+TzBljn3VJUOpgvjQNGyDo4tkZUykKtKE8wsGTQiMBn+U7aoEIUiGzG0JQh1QX /LbutSVFRxh+YrwmjrCKxb6iXLtug3C46FbFhALrl6A9jUDCGcFi1rSTIU1cYgKMIjFB aXiWhkSF3kRPV44AQEGB0xvh2Ha1tTyrSvny2rB229i17XVlm/cUO+/pHNfCxGA7qRna xBEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=TPma3kQcrV7k3SdtUx7dNkBjxqZYWD6AfcJ1u/bPRT0=; b=HnXBhRpKjCqZ6lIeesmsHryMAsvTrEsKqmV0EOWGiKyyflE5NDPmp3djH066Va9o0v uf6hrMJBQ6E1ADGdmNCwjlbhzYOqlX0myenOuCU1xJPeN8L75HfNhffR8SkZ//BIdseW z/DsYtPHQ33ydNLY4/YhVFAhgmkgxXrEjA4JYuAIXS95heQvc7IxKdTWqbGtoVATtLir 11MzWgz+2n098X/KpmYG2NdzP1+o2IEPGy0v4lV3CxY49MFl/i+N9CcTMqBDFSHALLpH mR8JnXKqWep4THb3Ae1vKs0M1JZ3Vdp7faARbJ+NEXyqul7fU/u/6h4eE23zhL0IdfZh C94g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1uz83Lfb; 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 y15si3930446pgf.321.2018.12.14.04.20.23; Fri, 14 Dec 2018 04:20:42 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=1uz83Lfb; 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 S1732518AbeLNMR7 (ORCPT + 99 others); Fri, 14 Dec 2018 07:17:59 -0500 Received: from mail.kernel.org ([198.145.29.99]:37062 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732298AbeLNMQt (ORCPT ); Fri, 14 Dec 2018 07:16:49 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6FC18214DB; Fri, 14 Dec 2018 12:16:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544789808; bh=hf57ijFbCeK6wQlwKC2lj1fI+kvZlH5gjZ8lH6FtEX8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1uz83LfbzHf7vIkPJAmswbfMRiXFDpVsO5t6XwKuFDm8ak+YVm1lXLdhFiqhODw8n MVIiHZQTi5IX6bFwkEmjY0BXHDLYraBgnUeigIPQ+W51cS+iHh1hxebHZUTCG0g436 6nDMN2Y9Diyu2Cz9pAISBYYMj+bZNTNfWflasmg0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ingo Molnar , Dan Williams , Thomas Gleixner , linux-arch@vger.kernel.org, Tom Lendacky , Kees Cook , kernel-hardening@lists.openwall.com, Al Viro , torvalds@linux-foundation.org, alan@linux.intel.com, Ben Hutchings Subject: [PATCH 4.4 54/88] x86/usercopy: Replace open coded stac/clac with __uaccess_{begin, end} Date: Fri, 14 Dec 2018 13:00:28 +0100 Message-Id: <20181214115706.840772097@linuxfoundation.org> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20181214115702.151309521@linuxfoundation.org> References: <20181214115702.151309521@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Dan Williams commit b5c4ae4f35325d520b230bab6eb3310613b72ac1 upstream. In preparation for converting some __uaccess_begin() instances to __uacess_begin_nospec(), make sure all 'from user' uaccess paths are using the _begin(), _end() helpers rather than open-coded stac() and clac(). No functional changes. Suggested-by: Ingo Molnar Signed-off-by: Dan Williams Signed-off-by: Thomas Gleixner Cc: linux-arch@vger.kernel.org Cc: Tom Lendacky Cc: Kees Cook Cc: kernel-hardening@lists.openwall.com Cc: gregkh@linuxfoundation.org Cc: Al Viro Cc: torvalds@linux-foundation.org Cc: alan@linux.intel.com Link: https://lkml.kernel.org/r/151727416438.33451.17309465232057176966.stgit@dwillia2-desk3.amr.corp.intel.com [bwh: Backported to 4.4: - Convert several more functions to use __uaccess_begin_nospec(), that are just wrappers in mainline - Adjust context] Signed-off-by: Ben Hutchings Signed-off-by: Greg Kroah-Hartman --- arch/x86/lib/usercopy_32.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) --- a/arch/x86/lib/usercopy_32.c +++ b/arch/x86/lib/usercopy_32.c @@ -570,12 +570,12 @@ do { \ unsigned long __copy_to_user_ll(void __user *to, const void *from, unsigned long n) { - stac(); + __uaccess_begin(); if (movsl_is_ok(to, from, n)) __copy_user(to, from, n); else n = __copy_user_intel(to, from, n); - clac(); + __uaccess_end(); return n; } EXPORT_SYMBOL(__copy_to_user_ll); @@ -583,12 +583,12 @@ EXPORT_SYMBOL(__copy_to_user_ll); unsigned long __copy_from_user_ll(void *to, const void __user *from, unsigned long n) { - stac(); + __uaccess_begin(); if (movsl_is_ok(to, from, n)) __copy_user_zeroing(to, from, n); else n = __copy_user_zeroing_intel(to, from, n); - clac(); + __uaccess_end(); return n; } EXPORT_SYMBOL(__copy_from_user_ll); @@ -596,13 +596,13 @@ EXPORT_SYMBOL(__copy_from_user_ll); unsigned long __copy_from_user_ll_nozero(void *to, const void __user *from, unsigned long n) { - stac(); + __uaccess_begin(); if (movsl_is_ok(to, from, n)) __copy_user(to, from, n); else n = __copy_user_intel((void __user *)to, (const void *)from, n); - clac(); + __uaccess_end(); return n; } EXPORT_SYMBOL(__copy_from_user_ll_nozero); @@ -610,7 +610,7 @@ EXPORT_SYMBOL(__copy_from_user_ll_nozero unsigned long __copy_from_user_ll_nocache(void *to, const void __user *from, unsigned long n) { - stac(); + __uaccess_begin(); #ifdef CONFIG_X86_INTEL_USERCOPY if (n > 64 && cpu_has_xmm2) n = __copy_user_zeroing_intel_nocache(to, from, n); @@ -619,7 +619,7 @@ unsigned long __copy_from_user_ll_nocach #else __copy_user_zeroing(to, from, n); #endif - clac(); + __uaccess_end(); return n; } EXPORT_SYMBOL(__copy_from_user_ll_nocache); @@ -627,7 +627,7 @@ EXPORT_SYMBOL(__copy_from_user_ll_nocach unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *from, unsigned long n) { - stac(); + __uaccess_begin(); #ifdef CONFIG_X86_INTEL_USERCOPY if (n > 64 && cpu_has_xmm2) n = __copy_user_intel_nocache(to, from, n); @@ -636,7 +636,7 @@ unsigned long __copy_from_user_ll_nocach #else __copy_user(to, from, n); #endif - clac(); + __uaccess_end(); return n; } EXPORT_SYMBOL(__copy_from_user_ll_nocache_nozero);