Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp5450571imm; Tue, 16 Oct 2018 10:24:15 -0700 (PDT) X-Google-Smtp-Source: ACcGV621zDDHx1/o5a/3Gnn80y3TgylMyqXw0ixobxKZnwMl/U4kdqsLPmb6SL0S8xBfEjEMZ8D3 X-Received: by 2002:a17:902:9a07:: with SMTP id v7-v6mr21742766plp.14.1539710655194; Tue, 16 Oct 2018 10:24:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539710655; cv=none; d=google.com; s=arc-20160816; b=qYKuXDkhl2/J93wXYg7n3SZ5Fe2T/rkzgtyseJSwWDIuA79Vz+WbQ9AXJamws44Lp3 kcCvn/Q2cXOg9Qd4WxiXKrI0tYuyzgKt4azNzlaHWbrDaQXx+qItCNS+CG1qt3P+FANz RiHBujzfcV05w6suQBSrWlaXuHRTVR/Tv/woEw1PrjuminDHDTC3gEn/v6xuCOIyAgZ9 2TcBgWXs0dI9J4fH4h0as+kTg6MbOPe7we0/Mau5OZVD4SKsRQjvGQxi0SHbu3rvpkPE 1Cm2MpskLtTWgj7mmKhc023gFLafK82Vgr1gHj7hOb+qKdomE99XZUaERc8gXh8olvQP InMA== 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=+RP/cDiCi4afjyyZ1dA0V1GdbP8Yape6Z9t0J0vGmyk=; b=jt2jnJn5mZnAWQ+isVV0C+1HQkaRHINqGpmMd/TtKsmDUhxk3LrneWVEXxqHwYJY03 XKqyHEo1wHv8g6YJB2BJ63ENYJQA/nKnb70Q28Mrh8gyZrCQO6HwalT7O9Rh5QwUyJpT +eHZO2Ss7AiFl53O+pSwjIv2IdjcFDiLtgeofnBSTDY2/8ymTdBFZicYsILCeVSKvqaR lxkbXJgPrGXZqRgVGFWfkNwVkCohLasBb8cxWMxmIKk9LXXeN4cjsvkJydsgAg/m6K6n AHediHdVKeFYNAaKWv24zumjhy8nmQpb4QGxSERGQnxbwNPUJNKyJDu5IOKLJK2huD4Z t6/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=X6A2sTrj; 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 g27-v6si13843384pfj.37.2018.10.16.10.23.59; Tue, 16 Oct 2018 10:24:15 -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; dkim=pass header.i=@kernel.org header.s=default header.b=X6A2sTrj; 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 S1731030AbeJQBN2 (ORCPT + 99 others); Tue, 16 Oct 2018 21:13:28 -0400 Received: from mail.kernel.org ([198.145.29.99]:59342 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727433AbeJQBN1 (ORCPT ); Tue, 16 Oct 2018 21:13:27 -0400 Received: from localhost (ip-213-127-77-176.ip.prioritytelecom.net [213.127.77.176]) (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 B09F72089E; Tue, 16 Oct 2018 17:22:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1539710522; bh=et8C+pDgkK6B/zj8shy8NkBXvwEC6zpNvZge7YNhMPM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X6A2sTrjpUzCdyj7vUelohYSKHVrobahdIa0upJEOOYS0PO/8iGuYrMREahRF+dzu yz1rYMv/dQX3vicEoyw77XBT2XkUBqBgtlBWzQBh8kd6j34Ql7T20vkAxjQTg8+IO7 X3aqY0lKK8v3Mo4YmlJ2XNkb5d6JGZIrF6zmetcw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mark Rutland , Russell King , "David A. Long" Subject: [PATCH 4.14 106/109] ARM: use __inttype() in get_user() Date: Tue, 16 Oct 2018 19:06:14 +0200 Message-Id: <20181016170530.765384673@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181016170524.530541524@linuxfoundation.org> References: <20181016170524.530541524@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review 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.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Russell King Commit d09fbb327d670737ab40fd8bbb0765ae06b8b739 upstream. Borrow the x86 implementation of __inttype() to use in get_user() to select an integer type suitable to temporarily hold the result value. This is necessary to avoid propagating the volatile nature of the result argument, which can cause the following warning: lib/iov_iter.c:413:5: warning: optimization may eliminate reads and/or writes to register variables [-Wvolatile-register-var] Acked-by: Mark Rutland Signed-off-by: Russell King Signed-off-by: David A. Long Signed-off-by: Greg Kroah-Hartman --- arch/arm/include/asm/uaccess.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h @@ -85,6 +85,13 @@ static inline void set_fs(mm_segment_t f flag; }) /* + * This is a type: either unsigned long, if the argument fits into + * that type, or otherwise unsigned long long. + */ +#define __inttype(x) \ + __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL)) + +/* * Single-value transfer routines. They automatically use the right * size if we just have the right pointer type. Note that the functions * which read from user space (*get_*) need to take care not to leak @@ -153,7 +160,7 @@ extern int __get_user_64t_4(void *); ({ \ unsigned long __limit = current_thread_info()->addr_limit - 1; \ register const typeof(*(p)) __user *__p asm("r0") = (p);\ - register typeof(x) __r2 asm("r2"); \ + register __inttype(x) __r2 asm("r2"); \ register unsigned long __l asm("r1") = __limit; \ register int __e asm("r0"); \ unsigned int __ua_flags = uaccess_save_and_enable(); \