Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp385259pxx; Wed, 28 Oct 2020 07:12:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyIoCrBQGUQwsi8ZAtgiIyvv06gMEP0xrd3nidKiuw57JouDbodaoQDaEUAi6ECi+0jIOiE X-Received: by 2002:adf:f810:: with SMTP id s16mr8870257wrp.424.1603894349162; Wed, 28 Oct 2020 07:12:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603894349; cv=none; d=google.com; s=arc-20160816; b=BA8F7ovOHlSxOZ15k1V+AVF5IsFZZ0rv/Gi3sdciKiVy0cAGfg+8ROU6UF5oVWrd8m MX+FhJ/eydPTX9zFT0PQ/jsqZQUsMn02YhypZ7Jasdo+G8eE8tnUvs1F/v/vyQEDVnQ4 ZzbS0JZtGgyFNvmpFKcHc5IerzuB5gubT4EVt0MY7b2W0tnjm7vj/40VuZeWYcfAp2DE 45saWMgFJcxAECIB1Lf9P2s66lCdjFEDe/thX7uc0V1oNb0maZtzajcF1kEM547hMRaC 1iZIBucxJskX1VLPlsOVYzpBF6ulGxhMQ6fVJkS2fquuaIyBRLTNAgIA7tuJ2IcBCeHe Zpxg== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=TMumj3fH0ShMcU5pORzC5A+y+TofnCIIrm985QRUQkI=; b=qXY6zdir362dINiZa0tYPLlEkYzQCzvLTR7msS8pPUch1RbcIOlZXqmTszLX5MqYWV 8OHK4OQ/4slTLOSfkjf6UauYCwPiI9VawYoFY6A6InTki14Hx0miWowdTUm71SsP+nBt Q+ULVjIlJZCyQao9i6V1Kn8t5owkJY7j0Hc8f9FZmflcJm7dIHh+DYxTATX9ClfLUGQF f7dCcWIyEfIGR2AQkhYp/2i48STpi/k+iWw/APucyYoUj1DWjdDbTjrKIBVDLf07duoJ zeOU4F3IK8h5ZbA4hj4iYgXVN7/HkC4m+WBEcsQTA9UpaVcGq1Bk51AQHtAUpFtrpYXM JGtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hDqdRAiR; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q18si2524555edb.466.2020.10.28.07.12.06; Wed, 28 Oct 2020 07:12:29 -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; dkim=pass header.i=@kernel.org header.s=default header.b=hDqdRAiR; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1804855AbgJ0P6M (ORCPT + 99 others); Tue, 27 Oct 2020 11:58:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:55732 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1796412AbgJ0PSU (ORCPT ); Tue, 27 Oct 2020 11:18:20 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (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 E571E222E9; Tue, 27 Oct 2020 15:18:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603811892; bh=8AgK59QZ6Y+V+GpOCn8R6sQwifNuKVGsl3UtLc3qVIk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hDqdRAiRbz0+RrNn74epUnWQ7zIiQf2yEDYrVmAbr8m2zB/FoVrmjI8Bww0D5Ela4 W4rVEB1fPJk41LXEIu6QSJzW1ZHvlV35UD6/HL1eFZ41EIszvXdWCveAc32mzVYafo I4EHpeGHbtxfpEnbP5ifvZi6h8ygs4n57CiHSH6U= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Christian Eggers , Willem de Bruijn , Deepa Dinamani , Willem de Bruijn , Jakub Kicinski Subject: [PATCH 5.9 020/757] socket: fix option SO_TIMESTAMPING_NEW Date: Tue, 27 Oct 2020 14:44:30 +0100 Message-Id: <20201027135451.464532332@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135450.497324313@linuxfoundation.org> References: <20201027135450.497324313@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Christian Eggers [ Upstream commit 59e611a566e7cd48cf54b6777a11fe3f9c2f9db5 ] The comparison of optname with SO_TIMESTAMPING_NEW is wrong way around, so SOCK_TSTAMP_NEW will first be set and than reset again. Additionally move it out of the test for SOF_TIMESTAMPING_RX_SOFTWARE as this seems unrelated. This problem happens on 32 bit platforms were the libc has already switched to struct timespec64 (from SO_TIMExxx_OLD to SO_TIMExxx_NEW socket options). ptp4l complains with "missing timestamp on transmitted peer delay request" because the wrong format is received (and discarded). Fixes: 9718475e6908 ("socket: Add SO_TIMESTAMPING_NEW") Signed-off-by: Christian Eggers Reviewed-by: Willem de Bruijn Reviewed-by: Deepa Dinamani Acked-by: Willem de Bruijn Acked-by: Deepa Dinamani Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- net/core/sock.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) --- a/net/core/sock.c +++ b/net/core/sock.c @@ -1007,8 +1007,6 @@ set_sndbuf: __sock_set_timestamps(sk, valbool, true, true); break; case SO_TIMESTAMPING_NEW: - sock_set_flag(sk, SOCK_TSTAMP_NEW); - fallthrough; case SO_TIMESTAMPING_OLD: if (val & ~SOF_TIMESTAMPING_MASK) { ret = -EINVAL; @@ -1037,16 +1035,14 @@ set_sndbuf: } sk->sk_tsflags = val; + sock_valbool_flag(sk, SOCK_TSTAMP_NEW, optname == SO_TIMESTAMPING_NEW); + if (val & SOF_TIMESTAMPING_RX_SOFTWARE) sock_enable_timestamp(sk, SOCK_TIMESTAMPING_RX_SOFTWARE); - else { - if (optname == SO_TIMESTAMPING_NEW) - sock_reset_flag(sk, SOCK_TSTAMP_NEW); - + else sock_disable_timestamp(sk, (1UL << SOCK_TIMESTAMPING_RX_SOFTWARE)); - } break; case SO_RCVLOWAT: