Received: by 10.213.65.68 with SMTP id h4csp145202imn; Thu, 15 Mar 2018 12:13:38 -0700 (PDT) X-Google-Smtp-Source: AG47ELvGBJbBkra/raMqYYw2GtLBvXEIYxDvI4X82AC1HCTw+qSXCWRHh1Z+A35C8vrSTs/Y9BQE X-Received: by 2002:a17:902:28e2:: with SMTP id f89-v6mr9285871plb.114.1521141217988; Thu, 15 Mar 2018 12:13:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521141217; cv=none; d=google.com; s=arc-20160816; b=fI6V+WneX5nWFHuEMSYuCzs9eloxIJfFA35lAiUtVG/sALTqNfsd3OxoUwK+s8MfJX PqmsMfFZyQB1S7GIYdgt4C6aoG3z1NjHr0TQQP6X/iL2Ig4biV/gf7ULUTWSZ2rbqRdM nTAFmFO1IMT9ypRgcPESnOtpmTSwoG6wxu0Pqc0EbPkRelcjvFYj5GFhCBpGqN7lmegk vOcHdsoK2d8SDOq7KLyvqw1fopBh5OvLoPCiskOA4J41h7Yo0RrQ1XAjQ+P0MOKuef0s yz5DwKrXErhUugzidApXbudLGiv9Bdf/uVWgpFd7iXPMeYePZfbWtn1eNEJA92vpDaOv EmMA== 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:arc-authentication-results; bh=A7TwuIwYvH9MO3w+9tyc8fZORtBYv+aB7kHUsGw0Vac=; b=Ac8/yd2VPzLncghxjubPhQar0luVtdlCECbnHfCf54uI1MxhJTvCggUs9KcvSTQ7x5 J4XvDN9qq1wEIpIkpyr2XUOl1dEnJ4ShaeMne9H6XYD15rxw6z1xVioMF/buUXSS3YV7 iG4Ew8sncjxsyN2EIh/tUyLH8IhGHPBRrNpYmny2kcV72ESrxJ+m4vQJsB7rAWpfoV6n IkOd2p97JRZJCcYZYjh4o9N7fHJQSG4jvq9v7tmAeVtPIxsE2pCV0iUmra2PS4o354Bu W2OEm3k2mDG2erWlKHFn1Pypc7DBlyMFvdBBk2TolHceh3yhCAiYOj8fMGRBk1F7Y+rE GHBg== 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 r7si3720672pgp.212.2018.03.15.12.13.22; Thu, 15 Mar 2018 12:13:37 -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 S932696AbeCOTLv (ORCPT + 99 others); Thu, 15 Mar 2018 15:11:51 -0400 Received: from isilmar-4.linta.de ([136.243.71.142]:36226 "EHLO isilmar-4.linta.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932645AbeCOTGW (ORCPT ); Thu, 15 Mar 2018 15:06:22 -0400 Received: from light.dominikbrodowski.net (isilmar.linta [10.0.0.1]) by isilmar-4.linta.de (Postfix) with ESMTPS id 9CB3120091A; Thu, 15 Mar 2018 19:06:18 +0000 (UTC) Received: by light.dominikbrodowski.net (Postfix, from userid 1000) id 82446201D0; Thu, 15 Mar 2018 20:05:38 +0100 (CET) From: Dominik Brodowski To: linux-kernel@vger.kernel.org, torvalds@linux-foundation.org, viro@zeniv.linux.org.uk Cc: luto@kernel.org, mingo@kernel.org, akpm@linux-foundation.org, arnd@arndb.de, Thomas Gleixner , Ingo Molnar , Peter Zijlstra , Darren Hart Subject: [PATCH v2 03/36] mm: use do_futex() instead of sys_futex() in mm_release() Date: Thu, 15 Mar 2018 20:04:56 +0100 Message-Id: <20180315190529.20943-4-linux@dominikbrodowski.net> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180315190529.20943-1-linux@dominikbrodowski.net> References: <20180315190529.20943-1-linux@dominikbrodowski.net> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org sys_futex() is a wrapper to do_futex() which does not modify any values here: - uaddr, val and val3 are kept the same - op is masked with FUTEX_CMD_MASK, but is always set to FUTEX_WAKE. Therefore, val2 is always 0. - as utime is set to NULL, *timeout is NULL Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Darren Hart Cc: Andrew Morton Signed-off-by: Dominik Brodowski --- include/linux/futex.h | 13 ++++++++++--- kernel/fork.c | 4 ++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/include/linux/futex.h b/include/linux/futex.h index c0fb9a24bbd2..821ae502d3d8 100644 --- a/include/linux/futex.h +++ b/include/linux/futex.h @@ -9,9 +9,6 @@ struct inode; struct mm_struct; struct task_struct; -long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout, - u32 __user *uaddr2, u32 val2, u32 val3); - extern int handle_futex_death(u32 __user *uaddr, struct task_struct *curr, int pi); @@ -55,6 +52,9 @@ union futex_key { #ifdef CONFIG_FUTEX extern void exit_robust_list(struct task_struct *curr); + +long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout, + u32 __user *uaddr2, u32 val2, u32 val3); #ifdef CONFIG_HAVE_FUTEX_CMPXCHG #define futex_cmpxchg_enabled 1 #else @@ -64,6 +64,13 @@ extern int futex_cmpxchg_enabled; static inline void exit_robust_list(struct task_struct *curr) { } + +static inline long do_futex(u32 __user *uaddr, int op, u32 val, + ktime_t *timeout, u32 __user *uaddr2, + u32 val2, u32 val3) +{ + return -EINVAL; +} #endif #ifdef CONFIG_FUTEX_PI diff --git a/kernel/fork.c b/kernel/fork.c index e5d9d405ae4e..b1e031aac9db 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1198,8 +1198,8 @@ void mm_release(struct task_struct *tsk, struct mm_struct *mm) * not set up a proper pointer then tough luck. */ put_user(0, tsk->clear_child_tid); - sys_futex(tsk->clear_child_tid, FUTEX_WAKE, - 1, NULL, NULL, 0); + do_futex(tsk->clear_child_tid, FUTEX_WAKE, + 1, NULL, NULL, 0, 0); } tsk->clear_child_tid = NULL; } -- 2.16.2