From patchwork Fri Jun 12 07:48:25 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "\(Exiting\) Baolin Wang" X-Patchwork-Id: 49799 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-lb0-f197.google.com (mail-lb0-f197.google.com [209.85.217.197]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 14FA7228DB for ; Fri, 12 Jun 2015 07:52:13 +0000 (UTC) Received: by lbbti3 with SMTP id ti3sf7692885lbb.1 for ; Fri, 12 Jun 2015 00:52:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:in-reply-to:references:in-reply-to:references :sender:precedence:list-id:x-original-sender :x-original-authentication-results:mailing-list:list-post:list-help :list-archive:list-unsubscribe; bh=7TJOP5sYrbyNkgaRjcZpLOUmZpUAI586UZkMTOzj5OA=; b=ciHLzxxs2yBCiAJx3ITaxwW/fL461/kARvrqlF0xpWaxJvAnsgQO7ilpn2wS8KqO4x dCqCi6MV0eGw/07Sf6Yz2DfqQAxU2uoV1JCvOW/61tut1G46E117voIf0EJMlzYzaRnw 7cBmMf8LuZF3aQwviDnP5k25pWOz2KDMz6Tzj8AZr3/VRCb3Q9ptjSpaziAPuOsgCT+X OyVW801NK1yl78XnCkqMfeTMBQFuJhwRhMB2JvefKwXu1UEuKBkowT+79jMWLO4Fyr3Y UBrHQ6Pcw4dgmaPBPPuDE6cmnletOwlT51y9CyDq4OEqhNa2qUwnAzapyrS/QAs0p+TA qcbw== X-Gm-Message-State: ALoCoQmGhextrmQ2ukypv5RlBTGLJMBWfQ53jaYtTAypB0uKYcKD62SCUyJqehZiZ6N73qeW6irk X-Received: by 10.112.203.168 with SMTP id kr8mr13063708lbc.10.1434095532004; Fri, 12 Jun 2015 00:52:12 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.207.35 with SMTP id lt3ls494629lac.38.gmail; Fri, 12 Jun 2015 00:52:11 -0700 (PDT) X-Received: by 10.152.88.75 with SMTP id be11mr13783032lab.6.1434095531825; Fri, 12 Jun 2015 00:52:11 -0700 (PDT) Received: from mail-la0-f54.google.com (mail-la0-f54.google.com. [209.85.215.54]) by mx.google.com with ESMTPS id q6si2710403lbs.169.2015.06.12.00.52.11 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Jun 2015 00:52:11 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.215.54 as permitted sender) client-ip=209.85.215.54; Received: by lazv15 with SMTP id v15so16689998laz.3 for ; Fri, 12 Jun 2015 00:52:11 -0700 (PDT) X-Received: by 10.112.182.4 with SMTP id ea4mr14091368lbc.35.1434095531740; Fri, 12 Jun 2015 00:52:11 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.108.230 with SMTP id hn6csp356913lbb; Fri, 12 Jun 2015 00:52:10 -0700 (PDT) X-Received: by 10.70.54.7 with SMTP id f7mr20874776pdp.75.1434095530022; Fri, 12 Jun 2015 00:52:10 -0700 (PDT) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id nl4si4263114pbc.114.2015.06.12.00.52.08; Fri, 12 Jun 2015 00:52:10 -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; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754934AbbFLHwE (ORCPT + 29 others); Fri, 12 Jun 2015 03:52:04 -0400 Received: from mail-pd0-f177.google.com ([209.85.192.177]:35826 "EHLO mail-pd0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752282AbbFLHuR (ORCPT ); Fri, 12 Jun 2015 03:50:17 -0400 Received: by pdbnf5 with SMTP id nf5so19691151pdb.2 for ; Fri, 12 Jun 2015 00:50:16 -0700 (PDT) X-Received: by 10.70.96.139 with SMTP id ds11mr21054850pdb.98.1434095416763; Fri, 12 Jun 2015 00:50:16 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([175.111.195.49]) by mx.google.com with ESMTPSA id yv6sm2734372pac.29.2015.06.12.00.50.14 (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 12 Jun 2015 00:50:16 -0700 (PDT) From: Baolin Wang To: tglx@linutronix.de Cc: arnd@arndb.de, linux-kernel@vger.kernel.org, baolin.wang@linaro.org, y2038@lists.linaro.org Subject: [PATCH v5 10/24] posix-timers: Factor out the guts of 'clock_settime' for reusing Date: Fri, 12 Jun 2015 15:48:25 +0800 Message-Id: <86d96792c8550430ad18c86686407c00cb1ccaa6.1434079263.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <647dcc7ede88d9d95a6f9a2878487d46c233fb2a.1434079262.git.baolin.wang@linaro.org> References: <647dcc7ede88d9d95a6f9a2878487d46c233fb2a.1434079262.git.baolin.wang@linaro.org> In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: baolin.wang@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.215.54 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , In order to reuse the very same logic for the year 2038 safe syscalls which we need to introduce for 32bit system, factor out the guts of the 'clock_settime' syscall. Signed-off-by: Baolin Wang --- kernel/time/posix-timers.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c index 778610c..65610ac 100644 --- a/kernel/time/posix-timers.c +++ b/kernel/time/posix-timers.c @@ -1089,19 +1089,25 @@ void exit_itimers(struct signal_struct *sig) } } -SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock, - const struct timespec __user *, tp) +static int __clock_settime(clockid_t which_clock, struct timespec *ts) { struct k_clock *kc = clockid_to_kclock(which_clock); - struct timespec new_tp; if (!kc || !kc->clock_set) return -EINVAL; + return kc->clock_set(which_clock, ts); +} + +SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock, + const struct timespec __user *, tp) +{ + struct timespec new_tp; + if (copy_from_user(&new_tp, tp, sizeof (*tp))) return -EFAULT; - return kc->clock_set(which_clock, &new_tp); + return __clock_settime(which_clock, &new_tp); } SYSCALL_DEFINE2(clock_gettime, const clockid_t, which_clock,