Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp114253pxv; Wed, 30 Jun 2021 01:06:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyliaIiSSv1Q7nuRFMpIDVwQD04Ko1rHRFQ+hXOMpDA+YTb3Bzo/xbF3Fxex/L1cpQ+xv5F X-Received: by 2002:a05:6402:4cb:: with SMTP id n11mr44521998edw.292.1625040397210; Wed, 30 Jun 2021 01:06:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625040397; cv=none; d=google.com; s=arc-20160816; b=G90oKHJpK8S1wgRlPwS/Ev+Iz0lMgOmPVUjgJcysLIcEnt1eD//d0Z2wOtZwzLJ5Y6 D5z9S26lmc+hhvjnJEO2jfKf82Rq4CT9MpCLSSwxP+ilqE7aQWTb8ErbYzfS87sDoIfH v/hzi9qmuDLpnXSldSaCFPhQDe8EQK3Nij1+5h8PeaOCrExPz3wccIuNN8GsafmJGDq5 Lom3i8zteE4N4sPUjikxAM2m0JUxRzhLQQyhpMUA29Uo2MeSTW6yjvGyISKZwivFu19L IDN/7kp2HfOpu9vToVLLBYv82HLjeuZ8m9tOu5WIkxj24IUND3Tf4OgwIGphgBEyMGuz aZNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=Hdy/sclSh5Bb01/umXR7GGxQfgrVpbSRhkGVbuWi52E=; b=qCSAnT6obxYx7fLTou97DE6rSQ2PTduHwqRnEYMQ9kGd0SC+lB+DybHla32cyVnZFX +iZSyQRgFC76yFP+rkCYQK4uHBZbXzQiVMdixQB54ycT+oXSIIknxhwbnH2OYtQ1P7hZ I1KRL7ZqkGrEjv1oLg51/kuSZvGU0rnz3tawNMoiXeGe15T6iAT7mznIja//kxPhcC02 mhlC9gFcXG5meSOG80GQB8zo8ZlQqUqwJQo1xMAxN3g8lzemOORN67Z7KnNmYdQMmQJM /cCIlkF63vOiIozULnbL3mZfxJnvbaMgW3W7THlFxhAdMf4yxC68WEmzw/6j26bTmK4H Z23Q== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id yl23si10269501ejb.645.2021.06.30.01.06.12; Wed, 30 Jun 2021 01:06:37 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233855AbhF3IE3 (ORCPT + 99 others); Wed, 30 Jun 2021 04:04:29 -0400 Received: from inva020.nxp.com ([92.121.34.13]:37366 "EHLO inva020.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233535AbhF3IED (ORCPT ); Wed, 30 Jun 2021 04:04:03 -0400 Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id CBA5F1A16B2; Wed, 30 Jun 2021 10:01:33 +0200 (CEST) Received: from aprdc01srsp001v.ap-rdc01.nxp.com (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 91ACE1A16B5; Wed, 30 Jun 2021 10:01:33 +0200 (CEST) Received: from localhost.localdomain (mega.ap.freescale.net [10.192.208.232]) by aprdc01srsp001v.ap-rdc01.nxp.com (Postfix) with ESMTP id EC5A9183ACCB; Wed, 30 Jun 2021 16:01:30 +0800 (+08) From: Yangbo Lu To: netdev@vger.kernel.org Cc: Yangbo Lu , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, mptcp@lists.linux.dev, Richard Cochran , "David S . Miller" , Jakub Kicinski , Mat Martineau , Matthieu Baerts , Shuah Khan , Michal Kubecek , Florian Fainelli , Andrew Lunn , Rui Sousa , Sebastien Laveze Subject: [net-next, v5, 09/11] net: socket: support hardware timestamp conversion to PHC bound Date: Wed, 30 Jun 2021 16:12:00 +0800 Message-Id: <20210630081202.4423-10-yangbo.lu@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210630081202.4423-1-yangbo.lu@nxp.com> References: <20210630081202.4423-1-yangbo.lu@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch is to support hardware timestamp conversion to PHC bound. This applies to both RX and TX since their skb handling (for TX, it's skb clone in error queue) all goes through __sock_recv_timestamp. Signed-off-by: Yangbo Lu --- Changes for v3: - Added this patch. Changes for v4: - None. Changes for v5: - None. --- net/socket.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/net/socket.c b/net/socket.c index bd9233da2497..0b2dad3bdf7f 100644 --- a/net/socket.c +++ b/net/socket.c @@ -104,6 +104,7 @@ #include #include #include +#include #ifdef CONFIG_NET_RX_BUSY_POLL unsigned int sysctl_net_busy_read __read_mostly; @@ -873,12 +874,18 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk, empty = 0; if (shhwtstamps && (sk->sk_tsflags & SOF_TIMESTAMPING_RAW_HARDWARE) && - !skb_is_swtx_tstamp(skb, false_tstamp) && - ktime_to_timespec64_cond(shhwtstamps->hwtstamp, tss.ts + 2)) { - empty = 0; - if ((sk->sk_tsflags & SOF_TIMESTAMPING_OPT_PKTINFO) && - !skb_is_err_queue(skb)) - put_ts_pktinfo(msg, skb); + !skb_is_swtx_tstamp(skb, false_tstamp)) { + if (sk->sk_tsflags & SOF_TIMESTAMPING_BIND_PHC) + ptp_convert_timestamp(shhwtstamps, sk->sk_bind_phc); + + if (ktime_to_timespec64_cond(shhwtstamps->hwtstamp, + tss.ts + 2)) { + empty = 0; + + if ((sk->sk_tsflags & SOF_TIMESTAMPING_OPT_PKTINFO) && + !skb_is_err_queue(skb)) + put_ts_pktinfo(msg, skb); + } } if (!empty) { if (sock_flag(sk, SOCK_TSTAMP_NEW)) -- 2.25.1