From patchwork Thu Feb 6 19:34:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willem de Bruijn X-Patchwork-Id: 13963645 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EAF941A265E for ; Thu, 6 Feb 2025 19:35:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870530; cv=none; b=CHFEonGtiBoZiXRgrWP73MH6DTS5PqurLxEkjCgoaQfjTjM8UqmkGBB8j7g7adFT0vnFDr9mvgX/79+vkCpCnKL93pV+ANF/WzQA7TkIP07kEiQQRE584mDOYuQD4sHxDrmdB7NhFvhcuGC0D/OvO5t+5jDkDfx5+5sYd7X3A/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870530; c=relaxed/simple; bh=QygX04I51BXpRg/71AhnNhGV0vVoH7LJVYhFcnQkF8o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eZIkmZii4B7YxB7C+a6rLo8U7p2DzAyRL0cU2/6qmOzvTOLsNL6+OqloQfQADPb7IUPStEMx2SdV0AfbV2YhyPgLOUwlak2tTo0lVk/Y0i0rvOfa1ZiwNPXnk2whZkg9VbEWQzpHC+44PG5wpTiOq3cdSJCE3ItwgyIY66vZj1E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UpZCoSLS; arc=none smtp.client-ip=209.85.160.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UpZCoSLS" Received: by mail-qt1-f182.google.com with SMTP id d75a77b69052e-46c7855df10so22013891cf.3 for ; Thu, 06 Feb 2025 11:35:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738870527; x=1739475327; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1Kfk8tx7yFTz1fGWHvM+mv1grSUJUUWgJMZFXYog8RY=; b=UpZCoSLS9vimGMegKw64xqpNqxjqNpzUmcrMwg4yqC3JdqIcQ2Sa0bqU2b+jkZK0ZF GGqmB4FZTdQx1AnGX1hsANuvjqggWLwgOMaOuGwfU8YKxEbz/VEAWUECRev/KRUS7VPb tPhBbbZEzCrpxDfGiIM+43/3SvS6jC7jn0a6XGbDiCkYe1UMGIjyhu2anemqm1tU9qno E+Qy5544BWkfhRq5Qii9gOwO+Gu5PUQ7eKsHRwBtPCfAOczX+Fb1t3ajIEfeX/KhTHxV PpPHSxl3kwQBGQcnZPclTv43eQriwQH2eURa8WLIkkAvjDrSSWLQtqqIOS/mrqKHtYK4 Lz4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738870527; x=1739475327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1Kfk8tx7yFTz1fGWHvM+mv1grSUJUUWgJMZFXYog8RY=; b=SduH9vsQsgtIXppY8O1CNy6nPrnuOedE4qzL7BOjXCf6qGsa9RsYirNMtOCOW+j5FC st8ScXgc3aLVbTFNNsRpM1OKxuNKVNjj1bpECqSBGcPnTgrlD5v2UEFPYsoHH3yffCBM TgaC3fuA8h7zLXa8jKuPzdeEmTt0TPNCAbRytYUPIZUlJnL2YTjcWbUTx4tkdSFaD08g HkZtanIv4aEIrgL6PAvkNu7gPc9ufB51cKlN6xZQ7QrDGhFfEZqSvHIBzG0AuG5c843+ yNVUrNPlLlbvcC7bBMPmHjmhfx0T88kOvntINSlI7tsuW9hFPQMqrRAGSI+u2nnh0P6P SBzQ== X-Gm-Message-State: AOJu0YzYlGmOpGoRKN07L0q5PueiMn9irD0CVkmTWl4ueCAujMXv7sDO nlgQfmsmxDmaV95AK5Ub7E+fl7+AujOBjZp+3OLnKwbQX3lUkNJ1bdeaaw== X-Gm-Gg: ASbGncs0uQz1L2YSO2gbkpR+NDIOyALVyoQrWtUk66Khft9Wev9OJ5Vvv4mejMtwC5E b/WRJsSHtKdBMmFLGYCMUMHylv418qEUsftRs8co3WQZ187Ihxqxah4tjfZUXP7uW0oKHU6LQBM CDp2Nu7I+rJzFD2rLjzXszYrwfOmI69OgpjwPQvRr8t5tqcPxK4EENhVC3WsfdnaZkZiLevRI3U ls68T1nUvUHh+IceO/uhReg9v1Tpkg+c+ThKbTHB9RAQajEN9MOi1k3m/pgMXlK8I96NQYStRhp XbOqu+s+QRNun0VkzevSGZldQBQwAnjkAMb3GO92tR3IWHVNxFa65Q4OYvYpcAJ45zwQ/c4yif8 CPqzseI9N1Q== X-Google-Smtp-Source: AGHT+IFW54NHdl066U3/GA/AUZmhKu5oNo0MKA3zymDwlTC2nFCgwnn617WUR8o6eDRaazqI5Xfe5A== X-Received: by 2002:a05:622a:12:b0:467:956a:6a5d with SMTP id d75a77b69052e-47167a38e64mr9216811cf.27.1738870527636; Thu, 06 Feb 2025 11:35:27 -0800 (PST) Received: from willemb.c.googlers.com.com (15.60.86.34.bc.googleusercontent.com. [34.86.60.15]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-471492accc2sm8349301cf.30.2025.02.06.11.35.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 11:35:27 -0800 (PST) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, Willem de Bruijn Subject: [PATCH net-next 1/7] tcp: only initialize sockcm tsflags field Date: Thu, 6 Feb 2025 14:34:48 -0500 Message-ID: <20250206193521.2285488-2-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> References: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Willem de Bruijn TCP only reads the tsflags field. Don't bother initializing others. Signed-off-by: Willem de Bruijn --- Another option is to entirely avoid sockcm_cookie in the tcp hot path. Limit its use to the sock_cmsg_send branch: @@ -1123,13 +1123,17 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size) /* 'common' sending to sendq */ } - sockcm_init(&sockc, sk); + tsflags = READ_ONCE(sk->sk_tsflags); if (msg->msg_controllen) { + struct sockcm_cookie sockc = { .tsflags = tsflags }; + err = sock_cmsg_send(sk, msg, &sockc); if (unlikely(err)) { err = -EINVAL; goto out_err; } + + tsflags = sockc.tsflags; This involves a bit more rework, to have sock_tx_timestamp take a u32 tsflags directly. --- net/ipv4/tcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 0d704bda6c41..1f94b4e6c7ec 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1123,7 +1123,7 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size) /* 'common' sending to sendq */ } - sockcm_init(&sockc, sk); + sockc = (struct sockcm_cookie) { .tsflags = READ_ONCE(sk->sk_tsflags)}; if (msg->msg_controllen) { err = sock_cmsg_send(sk, msg, &sockc); if (unlikely(err)) { From patchwork Thu Feb 6 19:34:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willem de Bruijn X-Patchwork-Id: 13963646 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1368819B5B1 for ; Thu, 6 Feb 2025 19:35:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870532; cv=none; b=KhKgBrGcuEFU4KDzi/VMlI7qg5j043nnfca6o3i7CvK0Pb9WRBvFhCQvHWt2YyS9W1sfLRm3aWBcw9sXlh35QHFYO3yaZQthyTBIa/EUpg7+f/4DtYS7lGjedCogKM6BlrHbsUWlP+j6iqAnACTNualaN3X+RrC6X7v370tVKvU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870532; c=relaxed/simple; bh=SUQ36dT7NCquYR/J3wrYi9DAuLdQ7lLdOj3bIwQ95TE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dyN8HFDDg8soN5bKS6kc0tHh7cbdEmcs6WDcWqYMGuYH0tf/Ku7vk358lUYsa1nZ1+nypGVwObqtLom4jjgHI6Ty3TpG9gi3g3HfM8VrNZSSkSystzbnXmPvrngf2kOWBEWMzkNDzfw7k/6SawlQ1cV3Win6WZCk1q4G3yjLUbg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ipj0e3Hq; arc=none smtp.client-ip=209.85.160.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ipj0e3Hq" Received: by mail-qt1-f182.google.com with SMTP id d75a77b69052e-46fa764aac2so9673721cf.1 for ; Thu, 06 Feb 2025 11:35:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738870530; x=1739475330; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jR573iXHDE6qn0yhJ5BDmPlNhijejbGjKbJBvKgVCss=; b=Ipj0e3HqbfF1QOcZW7Xd5pqfmfiCxLD35kJD8eB8EgqQLbVk3489zaqqthAe/ZVrPl Qy+ZxEk0nD/1cp4Q7qHgIE8UfMReq/0rIT6ZfqnLAMh5XHu6QBmu2VNKiz0N4tdqflv8 eh9kXJxWHMH1eUDoLzSsK1kwB/Y3z/+GSpzd0WDC2qgWKg4EPTWUoeXViVHHJzAPaCeB NJ4yebFbmKfCjDObNgc3GZDltgD0Ka56iEDRVbalGZ2hMm8P/jHOScBDHStcVP84ix4k JwFR+sKMwjhKTJQ8SNcb+D+3RO6M3Ts6X4CCqmLWvtPLNGpyiLBMmg/iScLitQxPshCD 5SUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738870530; x=1739475330; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jR573iXHDE6qn0yhJ5BDmPlNhijejbGjKbJBvKgVCss=; b=kQhMiXmq0JpF0Hzy/YKW7rQN20iZg38fEHragNWE8lE3iIevJ6cUk/iphYhX8v7I5Q oqB5y2kWO+yYV39WVv4NKmZA1dlMKOKCE6kcWHM8I6QHzQLLilDUVj2Fl6y/5BYbzGWz +Z9kCCCindoTQZm5Mn9745SrVTDp7TJYsAW2jERfigo/PAPGlDgZKfizZeAte6P9elbx qvoUaf/2z9aTl0wS9yU+FOaai69yeQ9a9lKV2gXMUBrepEmapC9CNFuQi4bbgG7ZO4Bw 8xL6VbNXX1OeZA9OassouHfW5xu7Na1aAZh/Zm2sbQTqlxcH59rkiWqMtgHc6uRzzTlF +WbQ== X-Gm-Message-State: AOJu0Ywmxjv9I+CJoaGvOHcXlKhf8CNtRyBEwidx3PnE2xtaO9P2DiO8 W+WBXECE6bKxsBrjQPklmdl0UuSqQDNdzXfisOpHfQqNzXqAd8G4m8kmBQ== X-Gm-Gg: ASbGnctGMvXMYw25mtCoaOXW0ESXR+h+6YI2KyGTNlMa9MgET2AkfkCRshSmiRkDlQv zdjk2K/r9fLLYprcCbxupmG1c3OHEWQylhbikEdADy4zUZKPAun+RpX8NhDbpUwCCJdOIXMJrM8 jbT3j6xTLqNepiJnrMtHeTe1EIT2cYLJIIx7jrERHxos4OsTtd87MD8om8vAX7KObTibZxv3GWP wLoOoGvNl+G0ilmZ1DS7NkrhNMse1ndI9Ad/lYTJXCo3srraNiFMtcxo8Tmr1t4clWcWYnH39qT 2IlGlpOxNxfkLDeTQ/0vKnDYhaj5XVPuTFliIQf0f6hZ9JS2WgBlvx0JKsT9TkDSmV7N9AGu8uE Y/1sTWeCceA== X-Google-Smtp-Source: AGHT+IFzMHfOlQvpuiy9f8FFfejDimvFL/7ofGRtfKe3FAZnB4apssz67fctDmtV6CVO28k+aTesWw== X-Received: by 2002:a05:622a:489a:b0:467:5910:255f with SMTP id d75a77b69052e-47167a2c642mr8628451cf.30.1738870528394; Thu, 06 Feb 2025 11:35:28 -0800 (PST) Received: from willemb.c.googlers.com.com (15.60.86.34.bc.googleusercontent.com. [34.86.60.15]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-471492accc2sm8349301cf.30.2025.02.06.11.35.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 11:35:27 -0800 (PST) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, Willem de Bruijn Subject: [PATCH net-next 2/7] net: initialize mark in sockcm_init Date: Thu, 6 Feb 2025 14:34:49 -0500 Message-ID: <20250206193521.2285488-3-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> References: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Willem de Bruijn Avoid open coding initialization of sockcm fields. Avoid reading the sk_priority field twice. This ensures all callers, existing and future, will correctly try a cmsg passed mark before sk_mark. This patch extends support for cmsg mark to: packet_spkt and packet_tpacket and net/can/raw.c. This patch extends support for cmsg priority to: packet_spkt and packet_tpacket. Signed-off-by: Willem de Bruijn --- include/net/sock.h | 1 + net/can/raw.c | 2 +- net/packet/af_packet.c | 9 ++++----- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/net/sock.h b/include/net/sock.h index 8036b3b79cd8..767a60e80086 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1828,6 +1828,7 @@ static inline void sockcm_init(struct sockcm_cookie *sockc, const struct sock *sk) { *sockc = (struct sockcm_cookie) { + .mark = READ_ONCE(sk->sk_mark), .tsflags = READ_ONCE(sk->sk_tsflags), .priority = READ_ONCE(sk->sk_priority), }; diff --git a/net/can/raw.c b/net/can/raw.c index 46e8ed9d64da..9b1d5f036f57 100644 --- a/net/can/raw.c +++ b/net/can/raw.c @@ -963,7 +963,7 @@ static int raw_sendmsg(struct socket *sock, struct msghdr *msg, size_t size) skb->dev = dev; skb->priority = sockc.priority; - skb->mark = READ_ONCE(sk->sk_mark); + skb->mark = sockc.mark; skb->tstamp = sockc.transmit_time; skb_setup_tx_timestamp(skb, &sockc); diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index c131e5ceea37..3e9ddf72cd03 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -2102,8 +2102,8 @@ static int packet_sendmsg_spkt(struct socket *sock, struct msghdr *msg, skb->protocol = proto; skb->dev = dev; - skb->priority = READ_ONCE(sk->sk_priority); - skb->mark = READ_ONCE(sk->sk_mark); + skb->priority = sockc.priority; + skb->mark = sockc.mark; skb_set_delivery_type_by_clockid(skb, sockc.transmit_time, sk->sk_clockid); skb_setup_tx_timestamp(skb, &sockc); @@ -2634,8 +2634,8 @@ static int tpacket_fill_skb(struct packet_sock *po, struct sk_buff *skb, skb->protocol = proto; skb->dev = dev; - skb->priority = READ_ONCE(po->sk.sk_priority); - skb->mark = READ_ONCE(po->sk.sk_mark); + skb->priority = sockc->priority; + skb->mark = sockc->mark; skb_set_delivery_type_by_clockid(skb, sockc->transmit_time, po->sk.sk_clockid); skb_setup_tx_timestamp(skb, sockc); skb_zcopy_set_nouarg(skb, ph.raw); @@ -3039,7 +3039,6 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len) goto out_unlock; sockcm_init(&sockc, sk); - sockc.mark = READ_ONCE(sk->sk_mark); if (msg->msg_controllen) { err = sock_cmsg_send(sk, msg, &sockc); if (unlikely(err)) From patchwork Thu Feb 6 19:34:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willem de Bruijn X-Patchwork-Id: 13963648 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 998DA1A9B58 for ; Thu, 6 Feb 2025 19:35:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870533; cv=none; b=cy/ZrZd/JTx4sLQR6fRN6MsnXEic3mwZcGPLLLUbNaqOuZHE7jbVyJrBWFuWeAhsjV9IVRmTyEtjzF6BLDviT9ULgI/sJJ/eSCBsR5YqsEZd0rQmP/M7AVrkdohV8wq7Tkvoi3usFZZOEvwSb0fUxQlaqeLo6Tx1yHfnfILUEUM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870533; c=relaxed/simple; bh=lGZWu3jPg52+pH/sJcRfMQ2FRfaimKSO6mvYUMpmPS4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nbt9Zvx2yd1/yzPJ4Au5IK5cSbezudYoxN0ZuydY3BbtxmAPfoFgPYuJoqBdJM/U0qNfzPoc78uB0HHDos0frPX5l5xk/OYT6fadraa/u7gi1rmusKI8wZJsfDrg95KfQQ7ib6Mgx+gdgSqQsjhVuSzfKT9hQAACcs8wMyM6rGU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MyrStvvO; arc=none smtp.client-ip=209.85.160.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MyrStvvO" Received: by mail-qt1-f174.google.com with SMTP id d75a77b69052e-46fd4bf03cbso19863501cf.0 for ; Thu, 06 Feb 2025 11:35:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738870530; x=1739475330; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=esbRzenWeGW8N6g0TO6k08/dN2AilbZBXiBhfK+nIOM=; b=MyrStvvOdE1aU1nJWJ3ZCmGXnA4tzpGUVe0MikBCv4TVwANyxKwRyaArWyfqGo8kKx 9+QDdJOZAXp4tKpEuRT1B3uzxIDS4Rvt1d3V70EU6sL/JAgu1yustqQx5t5l3ufZy+b8 BJjXb59syakJyp+Kp307CbqY/gKOs4keOsDR62bI7u4BUt6KQZdTDWWmq8e8PvApTy3v sBF3QVHzZhE9jHZ5LrJ4Bwgc8KVnTf6Ej8iGd1IsUG7MEvkIF+EA+Hnz0d6ueh6hcib2 ng3ovD5ughlqtmcmI4zdFccwCsd4WAWpy/2ZP86mW2SkDaRKBjv2NGWKjBvgn26NJRoS fKUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738870530; x=1739475330; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=esbRzenWeGW8N6g0TO6k08/dN2AilbZBXiBhfK+nIOM=; b=ehUyYM8k1PuTNC6rbBP7jvwI018El51Ya/PILyVY5FBEvt/0MRJ1mHyYApARwD07eP r3P09l0qY31alKmGZl1V6umA9whkszKonf2IWg2OyeDpWCR2Ij4f2WT1TjvbDJjf9ObW eFiHkkKy9Hc+788g/VZYCpTGjyc/daxqIEXL1b9b3FOhsArSBj3qgeTbEVR9kBJmZ1NM o9JebUnFKUIpmK8WysP++8TbT9k5q6w4kP8xm7wRKS3yyfdLE1PM1h2CIwHtYR9uX443 lYEEs6FttJc1atVhQU66m+dx8OcCI9bq5QAzgCXSq1GVnWmMruWZ3zbUdBy+SYjzOrwh FDOw== X-Gm-Message-State: AOJu0Yx9Fwljk1c+JAe+yPYWL3BFc4HH4QZLModA2Qzg6fm5SRGwZD9w O1GM3gbkOLMpaRcaQsmWB2cGxfRyuplKdCZEO8mFCd1yh7D6lqZK3qVw6w== X-Gm-Gg: ASbGnct7NZmc1w8qOCd2tMTOzudf+RROKzOnd1cKqqogYSEru20XjLl8L27AmPw9QmR AFhE/4+/L7735L4dtN+WWTFfbU2nj6v5l1iSZvAta8pSfc+UnjGhvxNXgI9bSjTb4kt+MsIDZF4 L1HId5knsquYe2tq+0KXvuBor6hZ9PAwkq5QoEzUI1McdU71oFfglkCkks5aEfeEyAnawpjMkR6 MSrHJnM/Ww/mMDFoXtof1vJOidOfEGK/r7nxufRGS9HZ0ZpqHsoHjpX8W//kqvAcJSx/vLdY6hT HYT3mvNfr2MM90NUNHTJI7krL2MhAfKkAoe8dchifYVG68NCqxgGJTj4mtUSwjD0cvZKvjJrX24 GTiMx7+jBKQ== X-Google-Smtp-Source: AGHT+IGoTHrEEBeUWjn5r4vonS/OOerlfSWVzcrqWNyKFLt4Gwr83Q2eDfCLmlOw1/XifeiiRhI9Kg== X-Received: by 2002:ac8:59c8:0:b0:467:6e25:3f3d with SMTP id d75a77b69052e-471679f24b4mr4794131cf.15.1738870529091; Thu, 06 Feb 2025 11:35:29 -0800 (PST) Received: from willemb.c.googlers.com.com (15.60.86.34.bc.googleusercontent.com. [34.86.60.15]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-471492accc2sm8349301cf.30.2025.02.06.11.35.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 11:35:28 -0800 (PST) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, Willem de Bruijn Subject: [PATCH net-next 3/7] ipv4: initialize inet socket cookies with sockcm_init Date: Thu, 6 Feb 2025 14:34:50 -0500 Message-ID: <20250206193521.2285488-4-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> References: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Willem de Bruijn Avoid open coding the same logic. Signed-off-by: Willem de Bruijn --- include/net/ip.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/net/ip.h b/include/net/ip.h index 9f5e33e371fc..6af16545b3e3 100644 --- a/include/net/ip.h +++ b/include/net/ip.h @@ -94,9 +94,8 @@ static inline void ipcm_init_sk(struct ipcm_cookie *ipcm, { ipcm_init(ipcm); - ipcm->sockc.mark = READ_ONCE(inet->sk.sk_mark); - ipcm->sockc.priority = READ_ONCE(inet->sk.sk_priority); - ipcm->sockc.tsflags = READ_ONCE(inet->sk.sk_tsflags); + sockcm_init(&ipcm->sockc, &inet->sk); + ipcm->oif = READ_ONCE(inet->sk.sk_bound_dev_if); ipcm->addr = inet->inet_saddr; ipcm->protocol = inet->inet_num; From patchwork Thu Feb 6 19:34:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willem de Bruijn X-Patchwork-Id: 13963647 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20D4C1A9B3E for ; Thu, 6 Feb 2025 19:35:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870532; cv=none; b=OGVfxTE65u1iAvcIPUnmbFlGjcTyXRPMevWE5RKectUCjFpFo8nyOycnP1GmjlgCk/H4Gap2t+/X1HwjiYCeCU0RiBgY9tadQ8C6kHeBlsL/6TmTDJPtIdLSaw86yBj2qv/2KRGdS9Tm8MkCKPeoWyGgVkUL/xIciXl11nHVC98= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870532; c=relaxed/simple; bh=SkWuNN//hqCQwzfB//aMR160tSPQ136kOB1bhGfamIU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K4tRAbjXt+9MwEC5wHKyV2AIXawVGorc/98sO6cZggklcjgbcjHOoPgJCHAA88xwE/8NK5d0/ir/T1xnChQjiNP856dLm2PJ1RVoWlgqoY4nsqibs/oTUJALBfiyJaoPc9Mb9scdWzmMRVG3UQW7wZk4mFyirdpl1iRGoNaCm+c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mzZjyQqf; arc=none smtp.client-ip=209.85.160.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mzZjyQqf" Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-46fcbb96ba9so15314931cf.0 for ; Thu, 06 Feb 2025 11:35:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738870530; x=1739475330; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eGfnLk9Q/lPUAqX3HfpstjMkR3lqRXGKEgckMFPRZUc=; b=mzZjyQqfgO9eOkGlrBtYWSstTU7YGLYF3y2vQoYMaPisw1CG7W5LiS4gnQaxs+fzgq tTj7j72+NjTiGU7z15HqFsYU+u+JL1JQEdtFF9SLFNsNAfDWyn2eFRTBv1eHfST+d8sU L2NHU2EEpUF5CeNUohErIZ3gqT65m/yRwO8sqW4Hx8pFxl1Rtqg2s3rwu+7b87sUcpCv mubr7CSvZ/C5la02MWdQc4mEEoQwzlCdpKRX88BtAA30FW0JJWyzxb0xXRN29L0ik4UH Ci+8caEs4LFkzz1C1eWf8uCAbhfBJUOOT6BnkLeEMOQOdLrtrq22gdYQNEmb5TbzI+F5 LqiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738870530; x=1739475330; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eGfnLk9Q/lPUAqX3HfpstjMkR3lqRXGKEgckMFPRZUc=; b=S7QSx2IYDGhxqPjSy6uFRhq2Z+r2kod8fmxEFaRxAZS2xRV8+6hvoGO2nAXtGAg1A5 nbpN0KoNwoM7U7P+MddhAmd/lgaMsLQjpIBHZvxNsvO1WdpZ2iQ+Ni6eib3Hf5jefDed QBlgvFCq9xju3VkqlRLCvXO0OaLh6UNulO/XiVPT2HL2pUhPNqRV4dEDbdiyvqVyQ/jz 7Q9j/Ok5fhriD1fpU+AgO79PAC81JQjpnNtQyuOvCcSCvXoOQlhQ1SSPKKPT03BvbwjA JU0pdUOgQLpf8BIJEURHYX4ssd5ww+ob6B2k4Bhypxzn3cK3+0EVds8eeWBlf3UOQ2nZ 5+Qg== X-Gm-Message-State: AOJu0YyILOZkzJRiacSknsWHKSUHiXORDw2GSQczbAeI4Qc5EHVqFKDS e52gmmncWQmhzZ8qJmSnxvD7qB5TT737AOvp8CWBBqcOqOHcOKldyTH00w== X-Gm-Gg: ASbGnctTTWhWWTqw+3FF6LO3ps7K8euRGQ67AiVa6DkVde72UrH30vnUj9jGm+iWUlQ SJI/dBxnKS0OCVNr92yanMNudVyRqkt7ADvVxKGnnJ4QVlixtvl1L+uQ/xWLmEoZ8TE5SZdEsVw BZiSNSO3Xf+zhoGJ7NLEXqPIBkfrv+tDaBJceSThWDJeqEzHmklTsOr0MkxNsoSnalZYBHt/9Zx djVIXfB5ee8QLls/MUC4Dhb07YvUmDW4ihpuHjbDoeApJkxIqO0l31nbA9mX31K7mXIhKDxDKOA foG9uugUcaZKdETXjggvQLCLQtNZNdhVMZRdK5bGricihIqc9ZdImmVrDjDA68EWhjVDTO9veoy R0o2sBI6yaw== X-Google-Smtp-Source: AGHT+IG2CK08zhNFS5SVonb47j/lurSsrXHRtw3mAbNWuPhpnQq/04zIa7Rhay6Seg/1+mC+LmCWjg== X-Received: by 2002:a05:622a:392:b0:466:8c53:7758 with SMTP id d75a77b69052e-471679b2fb2mr8916591cf.5.1738870529922; Thu, 06 Feb 2025 11:35:29 -0800 (PST) Received: from willemb.c.googlers.com.com (15.60.86.34.bc.googleusercontent.com. [34.86.60.15]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-471492accc2sm8349301cf.30.2025.02.06.11.35.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 11:35:29 -0800 (PST) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, Willem de Bruijn Subject: [PATCH net-next 4/7] ipv4: remove get_rttos Date: Thu, 6 Feb 2025 14:34:51 -0500 Message-ID: <20250206193521.2285488-5-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> References: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Willem de Bruijn Initialize the ip cookie tos field when initializing the cookie, in ipcm_init_sk. The existing code inverts the standard pattern for initializing cookie fields. Default is to initialize the field from the sk, then possibly overwrite that when parsing cmsgs (the unlikely case). This field inverts that, setting the field to an illegal value and after cmsg parsing checking whether the value is still illegal and thus should be overridden. Be careful to always apply mask INET_DSCP_MASK, as before. Signed-off-by: Willem de Bruijn --- include/net/ip.h | 11 +++-------- net/ipv4/ip_sockglue.c | 4 ++-- net/ipv4/ping.c | 1 - net/ipv4/raw.c | 1 - net/ipv4/udp.c | 1 - 5 files changed, 5 insertions(+), 13 deletions(-) diff --git a/include/net/ip.h b/include/net/ip.h index 6af16545b3e3..6819704e2642 100644 --- a/include/net/ip.h +++ b/include/net/ip.h @@ -92,7 +92,9 @@ static inline void ipcm_init(struct ipcm_cookie *ipcm) static inline void ipcm_init_sk(struct ipcm_cookie *ipcm, const struct inet_sock *inet) { - ipcm_init(ipcm); + *ipcm = (struct ipcm_cookie) { + .tos = READ_ONCE(inet->tos) & INET_DSCP_MASK, + }; sockcm_init(&ipcm->sockc, &inet->sk); @@ -256,13 +258,6 @@ static inline u8 ip_sendmsg_scope(const struct inet_sock *inet, return RT_SCOPE_UNIVERSE; } -static inline __u8 get_rttos(struct ipcm_cookie* ipc, struct inet_sock *inet) -{ - u8 dsfield = ipc->tos != -1 ? ipc->tos : READ_ONCE(inet->tos); - - return dsfield & INET_DSCP_MASK; -} - /* datagram.c */ int __ip4_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len); int ip4_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len); diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index 6d9c5c20b1c4..98b1e4a8b72e 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c @@ -314,8 +314,8 @@ int ip_cmsg_send(struct sock *sk, struct msghdr *msg, struct ipcm_cookie *ipc, return -EINVAL; if (val < 0 || val > 255) return -EINVAL; - ipc->tos = val; - ipc->sockc.priority = rt_tos2priority(ipc->tos); + ipc->sockc.priority = rt_tos2priority(val); + ipc->tos = val & INET_DSCP_MASK; break; case IP_PROTOCOL: if (cmsg->cmsg_len != CMSG_LEN(sizeof(int))) diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c index 619ddc087957..0215885c6df5 100644 --- a/net/ipv4/ping.c +++ b/net/ipv4/ping.c @@ -768,7 +768,6 @@ static int ping_v4_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) } faddr = ipc.opt->opt.faddr; } - tos = get_rttos(&ipc, inet); scope = ip_sendmsg_scope(inet, &ipc, msg); if (ipv4_is_multicast(daddr)) { diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 4304a68d1db0..b1f3fe7962bf 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c @@ -581,7 +581,6 @@ static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) daddr = ipc.opt->opt.faddr; } } - tos = get_rttos(&ipc, inet); scope = ip_sendmsg_scope(inet, &ipc, msg); uc_index = READ_ONCE(inet->uc_index); diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index c472c9a57cf6..97ded5f0ae6c 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -1405,7 +1405,6 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) faddr = ipc.opt->opt.faddr; connected = 0; } - tos = get_rttos(&ipc, inet); scope = ip_sendmsg_scope(inet, &ipc, msg); if (scope == RT_SCOPE_LINK) connected = 0; From patchwork Thu Feb 6 19:34:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willem de Bruijn X-Patchwork-Id: 13963649 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA1E31AA1C9 for ; Thu, 6 Feb 2025 19:35:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870533; cv=none; b=n9KvZjKqPeVGLz0I1/3AxARdLMO35/7LyCgeL6Zb5E8Wbw26H1H8PPdBjgDRXGdzA8Wl0C78WDN+6gJ3KL47Vv4KgOejy7iFSbloCN4lpGIvGMC0TJ+q03o9rgy4pQDJ6rTnmQsavyBIVQmjVery4DamLg0W5rQf+AxUAoAGVeY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870533; c=relaxed/simple; bh=dEiafCPXwSJw2hpR+G4l/4Ri6UiKr2phshgRUbM70lk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BzSiCit77v5gXFgrz6nQCrSvr7QgJQgHlGMDJ6cZFridgXipR0Rp7tCJaphtMnVrv8CaJv43jgP+Z18fz7VkY+bFDQkCurs5ciLnBN4RpfX+SKhlVTFGhC2+aMe8McYPdE/0fHfrovy2mjjd9heX3gaFoCpsHYBZmH00esyRl8c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ZX7LqGOI; arc=none smtp.client-ip=209.85.160.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZX7LqGOI" Received: by mail-qt1-f170.google.com with SMTP id d75a77b69052e-467a63f5d1cso11456911cf.0 for ; Thu, 06 Feb 2025 11:35:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738870531; x=1739475331; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zwE+P57qMwDKQ7jYnp6u+xaB8jdbcIZvlmw2uIYpCFI=; b=ZX7LqGOIVnqg303MQ8YiQ/l0wWv42HeiSEyaSAx/bYVKO9jbzLkdebBN/YcHmEE/XZ CkQO704c27JorjpRWQ1oF7aDaD6rolLvy/Vr+MLvD8n2zciW3BLVBC7H5KGb/zR9iDJt uKE2jBBKCEBuWI2ZLZa4Tjd7VsyE24ut5ZoDt9A0/zu8vR4nsX3XYyF7i2bReezj2EFY Tsbn53V2Bv4ExPFRD6ZsyRfLKNUmeP0qBCK98LbyQu/rSsRf3t3q66dC8VcoHkRZ3HRB fWEdE2KsRe1nXeEOFEQxB4IIS2dXUQIoFCeQxdhahJeCAETKkQxYsK/5TgbxC/bKy0Eg xTsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738870531; x=1739475331; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zwE+P57qMwDKQ7jYnp6u+xaB8jdbcIZvlmw2uIYpCFI=; b=DRplmecd1dOORsvP2aQ6qBtAUybcJ+U02qZw9WUdXOXzcdMe5nLWPk4X4iwD7gPlYq W2STLuQaAe5htMkXy1OrPhw+Zn75y0cLQ/qXAQPZq5g7MbZD7J34W5c9La+1TJcXlRqa 2tIGsL7J+wfEde2j0KaYPsKBhmA787eH9UmX4wOg+xTjjgzrB44OeOiDXZzgb9+ZovTe zhnXAQRlRCcSsoCB3o9cGfG7dP4zrHMQldjOnpG0XnLArbVCQzFWosG6XurRLXtRSgko CBMNRY6YwRRfoK0NuM8vo6e/Z3l9czKnnCHerM+UBCFZbt1aXO5q2caaeQnxWgXp8FpG qd+Q== X-Gm-Message-State: AOJu0YxzwDFij/1PosK+gDhdkJ+00A94C8Aq5H74yGz0Zuxda/Gzf4+5 uTdXTlw5qj3al08uRL7eWyjY5dw9+ukZgaIXz2acFsBqLMemuOS4kui2Mg== X-Gm-Gg: ASbGncuiHEl3bjfd6Co9rujXwKAvfVIZkeSksVmjVd6bgevTWgw88GUcbM52tt9SkwG E6giGsEt3vGy0Ot4J+VxSM7ZYkZvmRBt907KRZB9N8arfOt5/JO2LWUq81r48GdDgPftMZjAL7X 2nEpHeZsf5LyjgyxWvXbsg0LbNtqW1Mtk13ER8bOD5KKOr6oauvD3pcRuLZvEPaTGHAfz+r5F5n nZwDHmlPsHpOL8Cyn3C8WzPhukrLEbDxBCXQlhWXHE7+iw9wjy16YYCE8HHOzZhikgS2jHljiej vK5AyJujPZYtzWihP9OmSy7jcHtyocHY9v7tajf76uQv+0VIm7l45IiXX4TBYMq1niUpT3co0Cn +i+NRhqvf1A== X-Google-Smtp-Source: AGHT+IF2Kdtm6TQRYUGdFJqix/o+8tep8q7n89xTivZbaWkewmrVAF5DZeY89pCIKJz44yy/79XTKw== X-Received: by 2002:a05:622a:256:b0:467:7109:c783 with SMTP id d75a77b69052e-4716798aeedmr7922301cf.3.1738870530663; Thu, 06 Feb 2025 11:35:30 -0800 (PST) Received: from willemb.c.googlers.com.com (15.60.86.34.bc.googleusercontent.com. [34.86.60.15]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-471492accc2sm8349301cf.30.2025.02.06.11.35.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 11:35:30 -0800 (PST) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, Willem de Bruijn Subject: [PATCH net-next 5/7] icmp: reflect tos through ip cookie rather than updating inet_sk Date: Thu, 6 Feb 2025 14:34:52 -0500 Message-ID: <20250206193521.2285488-6-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> References: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Willem de Bruijn Do not modify socket fields if it can be avoided. The current code predates the introduction of ip cookies in commit aa6615814533 ("ipv4: processing ancillary IP_TOS or IP_TTL"). Now that cookies exist and support tos, update that field directly. Signed-off-by: Willem de Bruijn --- Tested with ping -Q 32 127.0.0.1 and tcpdump The existing logic works because inet->tos is read if ipc.tos (and with that cork->tos) is left unitialized: iph->tos = (cork->tos != -1) ? cork->tos : READ_ONCE(inet->tos); --- net/ipv4/icmp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index 094084b61bff..9c5e052a7802 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c @@ -429,7 +429,7 @@ static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb) icmp_param->data.icmph.checksum = 0; ipcm_init(&ipc); - inet->tos = ip_hdr(skb)->tos; + ipc.tos = ip_hdr(skb)->tos; ipc.sockc.mark = mark; daddr = ipc.addr = ip_hdr(skb)->saddr; saddr = fib_compute_spec_dst(skb); @@ -735,8 +735,8 @@ void __icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info, icmp_param.data.icmph.checksum = 0; icmp_param.skb = skb_in; icmp_param.offset = skb_network_offset(skb_in); - inet_sk(sk)->tos = tos; ipcm_init(&ipc); + ipc.tos = tos; ipc.addr = iph->saddr; ipc.opt = &icmp_param.replyopts.opt; ipc.sockc.mark = mark; From patchwork Thu Feb 6 19:34:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willem de Bruijn X-Patchwork-Id: 13963650 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B608C1AA1F4 for ; Thu, 6 Feb 2025 19:35:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870534; cv=none; b=MVLu/D5kZotvYNeFPfiwOB3+3NaQs2/B53wsVOSuhCgK414EvKg/WaxCuT73YHUpLMSAJuNLiJe0QBfDrzpyb1xSUOp34TcDB+Q+hKNZwf0cgXDTBkqnhMkXvwB3E5XuS6Cqb2Po0530166aS/FqOoSUY5FqVyiXVehumBw5BgA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870534; c=relaxed/simple; bh=LJ0/U1s5oUVPEk4S9BudypEhcVfmZideyM50xjvaOh0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D6H83f3XgeFUhdf/yQLQBkK54BS0yOkfig52ycxYgr4KsJht0Qv4pyk946N25JyWDZ7hyXBI14u7q5cmK/6xAmejBpFvm/qyMD112yD0ryuJFytoDniu5cRrO1jwzfVwXFind2waZNpXA1yAgh9dMtDzck0Ljmcz/+FJMk6mKLc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XVhtT+bU; arc=none smtp.client-ip=209.85.160.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XVhtT+bU" Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-467a6ecaa54so11289161cf.0 for ; Thu, 06 Feb 2025 11:35:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738870531; x=1739475331; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gau6dBJux1Cqdr4cJL8i+1DRll475j7858z0GE8Jeow=; b=XVhtT+bUswNJSNHBbqmFihQQELbg7fxAQyV3kLgE+3f1B7n243m/+/7oVaUD+LjuLe 232rHV0LUym9hqxXMZBMkxQYlQweNuuO2NJNXzZmRG1k05+q/MgUWtSZCo1zXcjCzbGH pksNCcCLQfPVcqeyKvUI7duZKNBLmP6tzO/2MvuQIVzfOMUGG5/0Htm/JQP//inNL3S7 taTgHmGBQld43AjZp9xC91C1KF+BSUtUYFv94Z+rkglCwt+w6pI5b3pVIO6T05vsRIcz 2CsSwTqcf50yAUHX2C4YQU4OJTxAGoYeaP4uiD6IDOToIr5J/rMR6NFZGrGzUsFhJ2WF yhJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738870531; x=1739475331; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gau6dBJux1Cqdr4cJL8i+1DRll475j7858z0GE8Jeow=; b=B+Vr4KD8E8PS1BW9KMDaTyxNIRNsHGQCHkHgJt2pepTWiu16abFoYR/juicrDIdz4K pTha5bkWW/XFJGJlaWYJTjF5xk0TMOiUplVsKGexBdkfcwt2o0jgcuyOAMBHy4pI/kOh wevazRpUJgPRYVRTqV+xD2pE2muDTbEBYrlYSrEXtmAWeyS6eptgn5sM/uxP2NtyOOaE pLjetIM3DOTfDbc1kfmef47/3dtJBFHkbdI0mjSaWj4n23s1HV5tVpMh/5/uyDcIg9RN OrPHQ9Mkjjc0lCKnJSDW1hRJlXfTcmmlGtEKpB6A2xT21CubdhQU7m/HVFNaXT0ELI7I hJrQ== X-Gm-Message-State: AOJu0YxTOYF5Me7YqJ3xlfZb9/EFOVXd2mqnaNiwhmMQ8VrOwm+8cjaA bEIVvhi4wJ2ueQPmmw1IYtQxxp73/kOKh/zNwITWykkJP+ewQKBoNwkNTA== X-Gm-Gg: ASbGnctDs3rSWAyq9TrK5f0/+bWVsiLuCki4BUHaKE4eNNB+KvthT4NfFtT8PE9WWrK WrdK6J8jk4gvUEqYKevbK1TOJFUNV7MMumhwij6xnfy73KmYWbjOD3deINd553ulqHUfQFErSju yy6oEWqYuiBeDAy5ywn4J4HermpHQOVZG6ISjs2Nr0FfhC7FTgqBckDsGptEOJ/Vy56JiRvU0zZ JhEAKHYxOJDxiuAEGgg51xx1ecSriXzEpIOoOvtcBtG0vg93TE8QnmrFvAwJZOJe6R8kdLOXPP8 BNzq5rzp2fcnjiX43XeaJlemkmkXoMo5xzOz36h2wNgtVIAlbBdGv/JBhClzZmyc90WL2MUsox+ EBQ+t02hVqg== X-Google-Smtp-Source: AGHT+IH3ATPURaG6qWn3BMy6R2aiBAS1XaQd9oA1hMXSzXoTjMpOCymYzti38qXL9xN+7Oc8HUaFhA== X-Received: by 2002:ac8:7f84:0:b0:466:a7d8:fd0c with SMTP id d75a77b69052e-47167a38d9amr5109801cf.30.1738870531401; Thu, 06 Feb 2025 11:35:31 -0800 (PST) Received: from willemb.c.googlers.com.com (15.60.86.34.bc.googleusercontent.com. [34.86.60.15]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-471492accc2sm8349301cf.30.2025.02.06.11.35.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 11:35:30 -0800 (PST) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, Willem de Bruijn Subject: [PATCH net-next 6/7] ipv6: replace ipcm6_init calls with ipcm6_init_sk Date: Thu, 6 Feb 2025 14:34:53 -0500 Message-ID: <20250206193521.2285488-7-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> References: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Willem de Bruijn This initializes tclass and dontfrag before cmsg parsing, removing the need for explicit checks against -1 in each caller. Leave hlimit set to -1, because its full initialization (in ip6_sk_dst_hoplimit) requires more state (dst, flowi6, ..). This also prepares for calling sockcm_init in a follow-on patch. Signed-off-by: Willem de Bruijn --- include/net/ipv6.h | 9 --------- net/ipv6/raw.c | 8 +------- net/ipv6/udp.c | 7 +------ net/l2tp/l2tp_ip6.c | 8 +------- 4 files changed, 3 insertions(+), 29 deletions(-) diff --git a/include/net/ipv6.h b/include/net/ipv6.h index f5c43ad1565e..46a679d9b334 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -363,15 +363,6 @@ struct ipcm6_cookie { struct ipv6_txoptions *opt; }; -static inline void ipcm6_init(struct ipcm6_cookie *ipc6) -{ - *ipc6 = (struct ipcm6_cookie) { - .hlimit = -1, - .tclass = -1, - .dontfrag = -1, - }; -} - static inline void ipcm6_init_sk(struct ipcm6_cookie *ipc6, const struct sock *sk) { diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index a45aba090aa4..ae68d3f7dd32 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c @@ -777,7 +777,7 @@ static int rawv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) fl6.flowi6_mark = READ_ONCE(sk->sk_mark); fl6.flowi6_uid = sk->sk_uid; - ipcm6_init(&ipc6); + ipcm6_init_sk(&ipc6, sk); ipc6.sockc.tsflags = READ_ONCE(sk->sk_tsflags); ipc6.sockc.mark = fl6.flowi6_mark; ipc6.sockc.priority = READ_ONCE(sk->sk_priority); @@ -891,9 +891,6 @@ static int rawv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) if (hdrincl) fl6.flowi6_flags |= FLOWI_FLAG_KNOWN_NH; - if (ipc6.tclass < 0) - ipc6.tclass = np->tclass; - fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); @@ -904,9 +901,6 @@ static int rawv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) if (ipc6.hlimit < 0) ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); - if (ipc6.dontfrag < 0) - ipc6.dontfrag = inet6_test_bit(DONTFRAG, sk); - if (msg->msg_flags&MSG_CONFIRM) goto do_confirm; diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 6671daa67f4f..8d1ef8e2fe1e 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -1494,7 +1494,7 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) int is_udplite = IS_UDPLITE(sk); int (*getfrag)(void *, char *, int, int, int, struct sk_buff *); - ipcm6_init(&ipc6); + ipcm6_init_sk(&ipc6, sk); ipc6.gso_size = READ_ONCE(up->gso_size); ipc6.sockc.tsflags = READ_ONCE(sk->sk_tsflags); ipc6.sockc.mark = READ_ONCE(sk->sk_mark); @@ -1704,9 +1704,6 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) security_sk_classify_flow(sk, flowi6_to_flowi_common(fl6)); - if (ipc6.tclass < 0) - ipc6.tclass = np->tclass; - fl6->flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6->flowlabel); dst = ip6_sk_dst_lookup_flow(sk, fl6, final_p, connected); @@ -1752,8 +1749,6 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) WRITE_ONCE(up->pending, AF_INET6); do_append_data: - if (ipc6.dontfrag < 0) - ipc6.dontfrag = inet6_test_bit(DONTFRAG, sk); up->len += ulen; err = ip6_append_data(sk, getfrag, msg, ulen, sizeof(struct udphdr), &ipc6, fl6, dst_rt6_info(dst), diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c index f4c1da070826..b98d13584c81 100644 --- a/net/l2tp/l2tp_ip6.c +++ b/net/l2tp/l2tp_ip6.c @@ -547,7 +547,7 @@ static int l2tp_ip6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) fl6.flowi6_mark = READ_ONCE(sk->sk_mark); fl6.flowi6_uid = sk->sk_uid; - ipcm6_init(&ipc6); + ipcm6_init_sk(&ipc6, sk); if (lsa) { if (addr_len < SIN6_LEN_RFC2133) @@ -634,9 +634,6 @@ static int l2tp_ip6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) security_sk_classify_flow(sk, flowi6_to_flowi_common(&fl6)); - if (ipc6.tclass < 0) - ipc6.tclass = np->tclass; - fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); @@ -648,9 +645,6 @@ static int l2tp_ip6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) if (ipc6.hlimit < 0) ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); - if (ipc6.dontfrag < 0) - ipc6.dontfrag = inet6_test_bit(DONTFRAG, sk); - if (msg->msg_flags & MSG_CONFIRM) goto do_confirm; From patchwork Thu Feb 6 19:34:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willem de Bruijn X-Patchwork-Id: 13963651 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 718021AB531 for ; Thu, 6 Feb 2025 19:35:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870535; cv=none; b=oMpgf0hXNKaFLrxgylLEFvWXUgrIKt4yVUAnlfvMAXVLyz5oCv4zSI8NdtiXWTfnygzVLhlSSP+xT6kRI3qjf1zp3nt4t7Yy7Vzyx84GUXoKZ9R5zzDPsHIq+WmkGVxX66fayvbOifZiYlQYWcKK/F0BqI7o9xG3SweQdIXzHHE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738870535; c=relaxed/simple; bh=6A1Yr0Nt2Y/i+CplfXUAh9Lytzs53pef80EIPY87Uso=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s6ptGd7GFL/YzspwGfy0P+VpnkhWY8YwPVOUToiLptlhOFMwyMrcNIegW/tEX4ZCbRUf3NsqwzcFKr3DvcsW9BNmfzStZQ/vJo9ZrGCwOZfWJB5DjxtnsTtNoszVBVT7BpxDfLHnBQMbVRwhamhj0yECmQmRITOFcxz/JLc+BFc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=X3p/VMAy; arc=none smtp.client-ip=209.85.160.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="X3p/VMAy" Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-467a37a2a53so14756361cf.2 for ; Thu, 06 Feb 2025 11:35:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738870532; x=1739475332; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GvZCJalBx72YoEeHFrYTX0UbCE0kMxHPZc2AdScVOTM=; b=X3p/VMAyNExXmJqj28iHnkL0ind5ip+cD/kyFgm5deAdPHwi8WBH9B9g7lKzwM0CDs dtMjJeMX6RXJDfFIRm/bUCwpqFBbwefnGG572oxQbAKvRDImkxYhf+iZsVYKyIEMP8cK jEasb88y/SiSKyXkMJ3w84ciWJ9IJYgvbL3U650NXUi22TJzNGzam5i+RebCaWg6D1lm asf9lfHdQeCYSKN+RPPy78TyPxKa2yh8hlIBiT2VrbP1bjLy9IzF81pq/C1jXlC4x2Oh wuPACUfkj6JN56AzEwIjvsvQ2EERfH+Hw7mtROtD+sGuYJNdrr1eXgJH2b/SZJ+E5bOi mIqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738870532; x=1739475332; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GvZCJalBx72YoEeHFrYTX0UbCE0kMxHPZc2AdScVOTM=; b=V38xQ4V0eEpyNhZQ8qsPfNUx4jAp+j/WvI6t0pwoKgxdETySk9wadV9seCiUcw7bOs F4ekwwVPQeJQ3LYu5i1ykhvb/LXf9IZ8lUlSGyf1qD9xufOoNhhMIHxksZIa9Q36vcB1 4FHSb6t7v1on4t/X5pL9EM7zuI4CizVbI+DPqmI87b1ASty11XWGXPHjf6319aWYd3ox Vq+ED1Ot87nxwJm+NgZdVIpzCNxUjqV8WtKbLGXDenfxtwkgig28PcByLa2RmZUQ5usJ LxW9LXdBqzJYq6CUif7m83ufbd+hq6Dn3tZQyC1JimMD74E85jycFfnXTqgrjYsf3EGv c3dQ== X-Gm-Message-State: AOJu0YxBDbTJLQ0+XcK0RN2RAmrY9K+fuhyG3l7EB9aOSlKYTNwdBJ2Z gTaI5HlO7QE6urUUqEOVGcDyPz0cV7UN6HuCV1L/UOn1lKKwi0E2C0peiw== X-Gm-Gg: ASbGncvN6X/g8Rf1byyy1umk59jOPArakWAQH4bZK6Fc6FKXUvtCnkaIbZ60m/F+uMB HRSJQfrfhacZ7EXDkmtLldqMhX6eGuaqhM50i+u1y3nxEFhsafXxLmeOvEbn/86kotEpLTuWqO3 tgXvSAs6Z+zRekJxpNq7e5Oc6QRfyZthO80k99TFP8r6kWdHvKHG4zhUqp9Z0xiqQSCfD+7Yt88 PyijF+nlTUADddx3rIlxF3/kn5XpAUs+4pFPZhqw+jOF4vspp3sPgQHCzr3KKXq9xVbjXYhfXfM 6SnYMY5cPWrFwbXihZOclu/D5tKcJjdKaUC/pJlNg4F10LbvBDn7RUmMD70O8+bw7CnTm5Bq68H PcYuEI0iBZg== X-Google-Smtp-Source: AGHT+IGkY+JMfwba7VxB+PVQmMvFkCo7/YXD7BOIvb/28yhyacGspyXnvDpUrLu702oXvm3bXCQWuQ== X-Received: by 2002:a05:622a:199a:b0:467:6bd8:accd with SMTP id d75a77b69052e-47167a9ed37mr6206191cf.15.1738870532241; Thu, 06 Feb 2025 11:35:32 -0800 (PST) Received: from willemb.c.googlers.com.com (15.60.86.34.bc.googleusercontent.com. [34.86.60.15]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-471492accc2sm8349301cf.30.2025.02.06.11.35.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 11:35:31 -0800 (PST) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, Willem de Bruijn Subject: [PATCH net-next 7/7] ipv6: initialize inet socket cookies with sockcm_init Date: Thu, 6 Feb 2025 14:34:54 -0500 Message-ID: <20250206193521.2285488-8-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> References: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Willem de Bruijn Avoid open coding the same logic. Signed-off-by: Willem de Bruijn --- include/net/ipv6.h | 2 ++ net/ipv6/ping.c | 3 --- net/ipv6/raw.c | 9 +++------ net/ipv6/udp.c | 3 --- 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 46a679d9b334..9614006f483c 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -371,6 +371,8 @@ static inline void ipcm6_init_sk(struct ipcm6_cookie *ipc6, .tclass = inet6_sk(sk)->tclass, .dontfrag = inet6_test_bit(DONTFRAG, sk), }; + + sockcm_init(&ipc6->sockc, sk); } static inline struct ipv6_txoptions *txopt_get(const struct ipv6_pinfo *np) diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c index 46b8adf6e7f8..84d90dd8b3f0 100644 --- a/net/ipv6/ping.c +++ b/net/ipv6/ping.c @@ -119,9 +119,6 @@ static int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) return -EINVAL; ipcm6_init_sk(&ipc6, sk); - ipc6.sockc.priority = READ_ONCE(sk->sk_priority); - ipc6.sockc.tsflags = READ_ONCE(sk->sk_tsflags); - ipc6.sockc.mark = READ_ONCE(sk->sk_mark); fl6.flowi6_oif = oif; diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index ae68d3f7dd32..fda640ebd53f 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c @@ -769,19 +769,16 @@ static int rawv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) hdrincl = inet_test_bit(HDRINCL, sk); + ipcm6_init_sk(&ipc6, sk); + /* * Get and verify the address. */ memset(&fl6, 0, sizeof(fl6)); - fl6.flowi6_mark = READ_ONCE(sk->sk_mark); + fl6.flowi6_mark = ipc6.sockc.mark; fl6.flowi6_uid = sk->sk_uid; - ipcm6_init_sk(&ipc6, sk); - ipc6.sockc.tsflags = READ_ONCE(sk->sk_tsflags); - ipc6.sockc.mark = fl6.flowi6_mark; - ipc6.sockc.priority = READ_ONCE(sk->sk_priority); - if (sin6) { if (addr_len < SIN6_LEN_RFC2133) return -EINVAL; diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 8d1ef8e2fe1e..1c6c86c0b8a9 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -1496,9 +1496,6 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) ipcm6_init_sk(&ipc6, sk); ipc6.gso_size = READ_ONCE(up->gso_size); - ipc6.sockc.tsflags = READ_ONCE(sk->sk_tsflags); - ipc6.sockc.mark = READ_ONCE(sk->sk_mark); - ipc6.sockc.priority = READ_ONCE(sk->sk_priority); /* destination address check */ if (sin6) {