Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp3809027pxu; Tue, 20 Oct 2020 00:35:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw9nCF1A1MZB8oajwfieFvBDqK1NaflwtHwN4XZ5Mk1KZpSgfOPetyMOUSpUdwJuVlyWEf7 X-Received: by 2002:a17:906:268c:: with SMTP id t12mr1729653ejc.377.1603179346074; Tue, 20 Oct 2020 00:35:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603179346; cv=none; d=google.com; s=arc-20160816; b=pSU7taqlKsRkHZwYPMs430S1dUEf96h3XaaWDsMFAwvEueBYToJafSCTzlI0ElHYSd 113ETrYLUXT9VSs8jLJIt16WeyJpCjqFtX7IYv2dZN1r1CDNcEHNJIpwFfRB8psD5Xii Sef5QxgfKhkU2iQwFnBqslfdfmOLQecR0HivzTRLw85aWYECjdk0OXaET/+/55fwRk/5 Kfo+dAZ4jzct2tcloYtxXdlMB9ySY7T67k9QhX1DcVUBqtNjQ4YlAlmkd6kl3xS7vTsx cmXqtjSgnOBgh02cb3445wa3CVonz2YsOsxS7BoxZ8ldKgy0QAidmIx1oFLm2BcwyIVq BG0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=OFfBAyQ/qIXV/4obyOscB7cE7mnrsnWAE6smwi1RCN0=; b=EoPzmf2D2BWH4W9AhMGEWl8gg/4HZu1G0I+BGhk8VFW+377aOGcRIGHRPuBabKb8nb CA0Yid1BhKPCfFAcLYorKPEqhNb8VTnMSZu0t5QMH1FnHFBpZ3+0U9Ip1pSQRXeUvLL1 u35+DTlAZNZghTdQs8NAks+uyXyjVxdtQLoYXHLhoD8XqFEkuikRAuTuV6sbYJbBN9+Z dCaPaiPnWyAMBJ1LnfLmoAA3NrNQPDz0j/Slu0ErArBb5O3fydhKxh6nhSXBEu9Yl+E7 lf4r/DsxcWBiscppKXmyx0NcZEwfAozOGeQJRLduQAjK6eEx1Pu3jiVNzYcOBAk8m0We RvNQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ly6si712549ejb.594.2020.10.20.00.35.24; Tue, 20 Oct 2020 00:35:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731646AbgJSTyE (ORCPT + 99 others); Mon, 19 Oct 2020 15:54:04 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:36483 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731493AbgJSTyC (ORCPT ); Mon, 19 Oct 2020 15:54:02 -0400 Received: from weisslap.m4st3rnet.de ([178.27.102.19]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MOQyE-1knmWm3DTy-00PvQb; Mon, 19 Oct 2020 21:53:26 +0200 From: =?UTF-8?q?Michael=20Wei=C3=9F?= To: Thomas Gleixner , Andrei Vagin , Christian Brauner Cc: Dmitry Safonov <0x7f454c46@gmail.com>, linux-kernel@vger.kernel.org, "J . Bruce Fields" , Chuck Lever , Trond Myklebust , Anna Schumaker , =?UTF-8?q?Michael=20Wei=C3=9F?= Subject: [PATCH v4 1/3] timens: additional helper functions for boottime offset handling Date: Mon, 19 Oct 2020 21:52:55 +0200 Message-Id: <20201019195257.10728-2-michael.weiss@aisec.fraunhofer.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201019195257.10728-1-michael.weiss@aisec.fraunhofer.de> References: <20201019195257.10728-1-michael.weiss@aisec.fraunhofer.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:E0D+k5IGlsCO7DO/+Mosa/rWcIGX2kkdWNEJw34R6y0jWM7TRJ2 SdMMSye/Vm2OWksDIOO8qRBrY29PVHwiajvVMbmv1ginZcngJ2T4YbqgAdhoPylnreNHCEi PDkixxdUByQrvACFpprUCJFr1Rd17gtR3TxF9XQQKb0uxIOp1TtxXvNdZ3q3HysJ59oZPTU J3I3LrWpgQjmNAkQG8i5A== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:YHlYm1DG2R0=:/fALJYG+jJB/EAMMJj/KRc JtPed7ZQIt9QtKMJtCg95dvFdpRz1TpeDkO1PkZgnjUWaPi+jOwPE05dUz8YzyiVUSi7q62Hd mg21AjQyC7ryzTMSZyb36h1tuvad0zFkwQ/UUGd4UsZo/NgPLBbmcwyvH4iqHafYizKJdiAZf f2PjGrkHZqX0W5yq6vrI38FP2OzPd5t+MMTyObTlxuGViSMeHngVz+WwZ8CW/O6TWAjMBbbrU h9fAcHuJQ8Je4aLIzoKgK02yysiqs0GXQUnSN4lZd06GCUsXLCwYANtItdNX+1+W77RBkFoRL Ap0TLiRQ3ip17T1xG2XqXoyemvIlQYKMGUdWACWTlYLYwjkRmmPEbxT9uRNv6oUlF6onpud5L IRvXjIjp/DUsolcdZ4zu1M8X6NiGFbrBgk/7smyIARpEfDj/3RWSYDim4N78xHwn39wAsAUjk DPFo/a+GxCXRPDhGvwqRs4sLjufAPAw= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Provide functions for time_namespace to subtract the boottime offset from a timespec64 as well as to apply the boottime offset to u64 types in nanoseconds. Signed-off-by: Michael Weiß --- include/linux/time_namespace.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/linux/time_namespace.h b/include/linux/time_namespace.h index 5b6031385db0..68770ac9ba89 100644 --- a/include/linux/time_namespace.h +++ b/include/linux/time_namespace.h @@ -77,6 +77,20 @@ static inline void timens_add_boottime(struct timespec64 *ts) *ts = timespec64_add(*ts, ns_offsets->boottime); } +static inline u64 timens_add_boottime_ns(u64 nsec) +{ + struct timens_offsets *ns_offsets = ¤t->nsproxy->time_ns->offsets; + + return nsec + timespec64_to_ns(&ns_offsets->boottime); +} + +static inline void timens_sub_boottime(struct timespec64 *ts) +{ + struct timens_offsets *ns_offsets = ¤t->nsproxy->time_ns->offsets; + + *ts = timespec64_sub(*ts, ns_offsets->boottime); +} + ktime_t do_timens_ktime_to_host(clockid_t clockid, ktime_t tim, struct timens_offsets *offsets); @@ -130,6 +144,14 @@ static inline int timens_on_fork(struct nsproxy *nsproxy, static inline void timens_add_monotonic(struct timespec64 *ts) { } static inline void timens_add_boottime(struct timespec64 *ts) { } + +static inline u64 timens_add_boottime_ns(u64 nsec) +{ + return nsec; +} + +static inline void timens_sub_boottime(struct timespec64 *ts) { } + static inline ktime_t timens_ktime_to_host(clockid_t clockid, ktime_t tim) { return tim; -- 2.20.1