From patchwork Fri Feb 14 22:26:58 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: 13975691 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) (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 8AC3D1FC10D for ; Fri, 14 Feb 2025 22:27:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572049; cv=none; b=IQ9vDfwIztKpcQzxDid/zOgw1PgB+Fr+8rnR9uKtEAPQ+pDVfT/sxkTmSimE5HarpeqIte9KEhPnycEMq8hitum7/wTTV7ISafcCtMDhLCMM2k0sJ9M4MinoUkPpZeymFdcEQrdqfIcKE6W7TgdjO9FDkqUKSRycgac1PYFh19s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572049; c=relaxed/simple; bh=HZ2SmNpb5Ic64Mk3MgPARGv4aL46TGDHU4gsZuZFW0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nNMkgnxNSjFZh6KcWvTnBt5CzTrbmKGMRTTXugRatujLr9Ih8N0G9dmE+Kh6W1jqIPwkvhAHvGarxG/mB4BlKGPZU/4gclIxb4DaKOZGJgmIaVfrmUN63z7HIs3h7iy95SyBcIbiX7qYySJxzvUX4FIdaEkv8XbO0afdIxhcQPw= 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=i8GTfqGZ; arc=none smtp.client-ip=209.85.219.54 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="i8GTfqGZ" Received: by mail-qv1-f54.google.com with SMTP id 6a1803df08f44-6e451fdcae2so25055036d6.1 for ; Fri, 14 Feb 2025 14:27:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739572046; x=1740176846; 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=2p82bngmGOds2cH1UrsYPHDJelca+70JaYaP87zs2bA=; b=i8GTfqGZcPkVANg+7qGpKijsQY2OnYoxlYQXAiEz+gxegNuKX7+ithiJVcRaI8Tx9b jJATX61zGFZ6bvbfXq9iOoyjjYoAgr7SafC81ozMxWxyKFfZYn7kw97hRNkQPX0uUAPd BTwao2Ua+VNuzrqAey9Kgvlxxl4CCgTjOLnZ9SQc822Ea4JD35AaSY+xg7eE5BqtlY/e /13ZyMou03QmPO6tRY5u2fxVWkIGWnHbbIzACzYZGX1mDMYWVT7buEPlL541/hQHDURQ FZg7Rs2IjQU5PUazr+o1xGsNN5+5Zhjt3YQcIcF2I/sGlvotaYKQL6zo/wUgBpr4gouH V/sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739572046; x=1740176846; 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=2p82bngmGOds2cH1UrsYPHDJelca+70JaYaP87zs2bA=; b=ukmSSlF8XJ3Y7KifHURYHLPJCPpi0aSgq+oF53pkZBBH7jAM7fXlWMf694bu9h7nra JckCGi2psjq0Tt/bjDdcTa2DgRtdCXHyXns3I838GQNmCvmV90ub3bK2JLTzu0LKy2tD 10STjSRrqkfH6M+Mifqs0K2islK2MTJpFegxT0CsY1D9RzjDWMvLkeAfl889kB/4vMtD vLxp2bNpz/ctr7NiyJ422EfGXWG4dx8+v14Wc7RDjPTalsqH2dLGJmrxhV2RPxtOzL67 2kJM4HOmJYfQ9PVLVYExdcvlKEZAcraChnUdQsT11WkPOxFqiGDTudVQqIDVstYl1w7x qUHA== X-Gm-Message-State: AOJu0Ywa+2nnoIQZk6MDMPZP/u0vbvtBnZ9kkBmmmouxdr/2YB3cf6Xw bs+mL4x82uLWXuELCJgjHLWa2+w0pAgV/s59KGYbwc37jz6Igu4w7QatHw== X-Gm-Gg: ASbGncvVcqKwMO2xdGVtY8sLuJFrutKb2/MV1v+GbiNAz/yZSUDdI3i4dxYRMvkVAig EiLJy8rhXKbfPlSfkrdnBX8ISfDNNp/Khm4dAOJFZxLfmhACE/5ISfDl5DAGNV6d8bE0+NVTU2s +CXLtOy/wAA9uCyLHtlAmMyJDixExFebes8emmPehY3X70crhSa1WUTM9ssNOpKSMYEY+VKYOog swlci/77q3daPhDesWidhdhTg0r3IewEjsGdEeLZRxeuAPMiTZxYt12aHFNawNfLpIEvdMIKwQ/ uSfHluXZbw+LgVGQeBmjRXYCBX1Sa5n8HlUaR2TWZIoVmhRMBg3MpJ5Z7HbASGo4Bqj1+o3bkSt pC7p5uBaDsg== X-Google-Smtp-Source: AGHT+IGduLcldadJ3fLwazVLPhXrvYEU4N75Cp7A8hKDvv7znIkPR55TjU3VMZhCGVkj2how06YpTg== X-Received: by 2002:ad4:5fcb:0:b0:6e6:69d9:2bc0 with SMTP id 6a1803df08f44-6e66cd0dea0mr13917456d6.37.1739572046325; Fri, 14 Feb 2025 14:27:26 -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 6a1803df08f44-6e65d7848b7sm25832916d6.27.2025.02.14.14.27.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2025 14:27:25 -0800 (PST) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, dsahern@kernel.org, horms@kernel.org, Willem de Bruijn Subject: [PATCH net-next v3 1/7] tcp: only initialize sockcm tsflags field Date: Fri, 14 Feb 2025 17:26:58 -0500 Message-ID: <20250214222720.3205500-2-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.601.g30ceb7b040-goog In-Reply-To: <20250214222720.3205500-1-willemdebruijn.kernel@gmail.com> References: <20250214222720.3205500-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 Reviewed-by: David Ahern --- 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 5d78ab3b416e..6a8f19a10911 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1127,7 +1127,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 Fri Feb 14 22:26:59 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: 13975692 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (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 33D2A1FC7D5 for ; Fri, 14 Feb 2025 22:27:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572049; cv=none; b=t+0I+/AV3o2qgzz8znBQ8fQKD5sy5gPrECYCO35k/bik89n1SjipNsgJuJ9ygaxlZ/caksonGzhawkGVVvXWNl5DaxUHNm8qGKcFatM2Z4gBXScwwXZEhY4JYnTLKR10ABmoFIBI+O228LCcc2tkvESO618cdqUoeqHU00P08zQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572049; c=relaxed/simple; bh=ucvbi0Zm03b5w6SFwAo9/XNpGFI3SyVAgc8E3vqrtcA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HZS5g+jjjkSN11XS/sf8c3JX13nDnE0NnahiIX3Gnbmmf2GiY/SQRhsnBX355m7HYhtJ0W+VQZZnJyIA6a1lVs03OYtSaA20ZyGQz7TkP8bTUXNBq+FZ8uiZwsY6AmBpaj0InCprfLJMJ8DwTn5f5YOeTiGIOot2UC/HQyKBGBc= 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=B/acFh6B; arc=none smtp.client-ip=209.85.219.49 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="B/acFh6B" Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-6e44f9db46bso28161616d6.1 for ; Fri, 14 Feb 2025 14:27:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739572047; x=1740176847; 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=0UgHvc1QgYTs64oSEM+u8grdLcyRvVdNFVLOjGhEmX0=; b=B/acFh6B9zRZAGo0RQ4p4C3MzR8Vp4f2jbP6uU81wHP9BSVUjlY0OFrG+gSjVovR79 p/BcbgMSeYKkO9A4SJU3uUCKGAcdTVgyn+LrVwuaxqF0wnehxnFpdc02GQ/tA3/BMc/+ BmwAFeVJ3gMCWYmipC4gS4ZvshXdhygdDqZ+oF07y+WkbH6B8HuLpIB4QSWofvqt8Qw7 dev5nhJQ6iuNDOmDg+7ZmiNlZLSBajccLJPG67IUgbUxpgDlISac8iO2+ZKuZtktzszq vXDgoOaAK0ru34EFHy4yENAu17EsuBwY2P1hz09+zlSC1qwKL5YtXwswS6CvYabK4Q86 38cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739572047; x=1740176847; 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=0UgHvc1QgYTs64oSEM+u8grdLcyRvVdNFVLOjGhEmX0=; b=aN8pYWFk0tFebn/TP6INjspGX52rtNJjRUa+IxjhJQ5rURZOoD2Az5lsbQU7BdECbr GnaGCmAaYFzhURnDo9fZsQuxA+jOgXqdC399v6+M5dEsLyV/7LUrpi2j9BA5BZ//OhP3 01PQ2A5ha/qD3WxXC1vW9CkX8gfniMquVUp4C8MK8vtelX95YfYjykk152Q7GPA30F+w qHQHzrT3ZIXjYFaSOQXrMIz2Ga0yMA0o/bcWcO/oO9V4rRZcJPaIdFQtKKDMyE76oGCF TXmQZ2adtuMq1r3mkVt94kdfog8sxh2gL4QyRPtojaf9xrociXkTKC8+O8xrYrHknyPS 3sPQ== X-Gm-Message-State: AOJu0Ywwdf5T3GSfNkVO5F1W06CispolU+6I4QpeWJfS0b6EdHUcoGhw d08HLt33MVwAF7qVuYAiuw/jh6KqJR57BvkBFlR4NlhQaj6M/48hmk5Bdw== X-Gm-Gg: ASbGncv3n8wNCyhJ8caCq0wxyfdZqFUj6MIM4kd97shOB1Hd0uEaql1+6xNkzXAgPRJ xYV5b5rmOoAIjsLt82m9yf95XJwXs+L1z72NtshRE1EX2BRd0igD7fPF0gWX+hTLg61LwC+B2I4 suj3TdOiGkxJKcxNqo0KFtuzA/A+3TZsBn09dXxcvtVixp9tiOR18AJVl94dma0Q9Ift57QB8eB fKRjHFv+RMyDWucG0p4irVGw9DzaA578Q+hGjczNXLva7Qk30c2EDDff/ilXN33OhTrFQPHjt2o D60GZtDZlvpUCxEu8sr65/u/6axW/3tmYHDb4Gd5oiJ4LbyPKaQPw09ePLmR7MynF86UMes/BF2 /Nz+hnGoOrw== X-Google-Smtp-Source: AGHT+IGc/jDrAHxNMP7UdnO8R8nACiMYauYa0D8mX+wEZvoqQ+YevXiHlPNusvU4k/BtHJBviCpeUQ== X-Received: by 2002:a05:6214:1d09:b0:6e6:5bda:a47b with SMTP id 6a1803df08f44-6e66cc86be6mr19177936d6.9.1739572047100; Fri, 14 Feb 2025 14:27: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 6a1803df08f44-6e65d7848b7sm25832916d6.27.2025.02.14.14.27.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2025 14:27:26 -0800 (PST) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, dsahern@kernel.org, horms@kernel.org, Willem de Bruijn Subject: [PATCH net-next v3 2/7] net: initialize mark in sockcm_init Date: Fri, 14 Feb 2025 17:26:59 -0500 Message-ID: <20250214222720.3205500-3-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.601.g30ceb7b040-goog In-Reply-To: <20250214222720.3205500-1-willemdebruijn.kernel@gmail.com> References: <20250214222720.3205500-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 Reviewed-by: David Ahern --- 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 60ebf3c7b229..fac65ed30983 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1829,6 +1829,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 Fri Feb 14 22:27:00 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: 13975693 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) (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 EFBA61FC7F7 for ; Fri, 14 Feb 2025 22:27:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572050; cv=none; b=WnzL7ch3qSISWRTkLxBdgH0BRB/nff6vCXvRfLmowShCyoCpuhZ8pXoYkeUxNAkTAb6aP2thA1T5AtpID0XQ/aHQpcvICZtIYs4hqpVkKioUQ1XM2Q+Kglg6ZNMEEbUjaapziYFGZk7fx1eR0xAlMWSb8cT5Y2KijeyRsYxV4qo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572050; c=relaxed/simple; bh=42lHGk3Flo2pN8wMz6h/M1EU5H8NqAADQw5fh15RRPw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ADAyJ2itJSJyPqSb0LyOQBaUC+TvlVdc9X8HBj3KRpyjLOmS4qfDfOunKfdihUxnaMg0cwr59wGWINdJQiebg3z4N8xs6la+Xt+PA+RYfKF5xqIztzjxuO8IHfVAB1SAHKgdZx2eKMXq8Gm/EtdeUhIom/NIVTmVCl4ocvO4p1k= 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=F4jqj8aJ; arc=none smtp.client-ip=209.85.219.48 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="F4jqj8aJ" Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-6dd049b5428so21637696d6.2 for ; Fri, 14 Feb 2025 14:27:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739572048; x=1740176848; 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=8OaDOlBFnjH1ntAx2ceZctZzUu/A/Lq5nTwbWKTLnGo=; b=F4jqj8aJVrB72mQk6+5rDDnJvKEfHfU2CFeJyfAESxmudfcu13Z68eA7Pr9nZSy6o2 tM7TuEwEdSOUv8y/qh7nM631q3bnxjnE88+f+O8uAZpVegD8tMUjZ/LImzeBBCwdgqMp swqVlvQmm8LDttJKmplgfu3cGWaDqdt/MQArEpnzy/heCZsouLGAMnHF9FRMPEGk53to OrGrtra6ofHjZZswdqUiTocReWMyEDIPPaURa2mrBmZoe84F80r4CnZ/wA8rna/cc1Uk cmp/eqR6Y54UufOAg1S4cq/hzLyAKp/nAzGp5va3yBWEN55/L8D7JaXxuKdoPV49pmbz mKBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739572048; x=1740176848; 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=8OaDOlBFnjH1ntAx2ceZctZzUu/A/Lq5nTwbWKTLnGo=; b=v9v8aofDpUZVtFVuOzHe3MuvYqW9E3hPI6up4KYJsqF1w27ujCIU8PlGVph2D8JU59 z6ze380AimVUHhwY0Aq6XcvOOqE+hAXGvtsXLELOnuyLE8Co77hao9UMnzPoI9ECo2+R a2A1E4tjxd+VjLHBN9BV3Ao7wzFtcq1/n0//Fg9NoryTTFS/GZBeKMICZWr/JbvtBhah CpcR5WYweIi0ZTaHdaGfPDZDqjaUjTtYjWJWYMNlybFuo7AIp3nMTCHUM6WSzwJzg3/6 R/yL+DKf8qHts9zO8V17XQcNqOO+/8I2exiMyuO82+qeUhQHgYnT9h2nQYuo8PXaYh7o OYPw== X-Gm-Message-State: AOJu0YxhJHMFhNJ4QOU5RK/1RzfT29NIqA/99wwEVglJ5Agoghh5eKOf AraBTc0ZagNjQdk67de2RF8PrHYJJUFkm8K2UPPtVZA65Xq/I92UxjLs1A== X-Gm-Gg: ASbGncsZy1vuKhYtdKr/sO4IjEsenBRAKtrA87o34M90pWTNzeutiDeZgfvIRzYPTBI ODY46A2KXfT3yrU4fix3wWacNfINuBg6d0FLscdFAAPcZv373XQQhGtXC1KHNGHj2+QBzCb+UZQ gCmS7m2aM7sUpW0fI9dsmukweucsSuUrPrzxvFdYHe/G94X8pAmHqrDlYi8/MJL1ljnjOh6FyXy 0K34EWt+Mb3bOWDlLW4BJ7wkj74R7F30wm7ySTNzf1VIRb/U/ycOaAi/Gmix7evY9rWxj9mj6EY +UgDNmHDTFEeOj8t722Tb0TJXCWFmdaaywF1uvQIDaCZZFDGIB4fn0Ik3xbosC/Fiyu1LgqAXua CEJXmZMDSNw== X-Google-Smtp-Source: AGHT+IGO/nx0104CKeECrhDaJ5kKbWQhuirYwUL/Wo151mVPAGjoSg9MPcFD/3uE8xQTqIxcHaThtQ== X-Received: by 2002:a05:6214:2422:b0:6cb:c54c:b782 with SMTP id 6a1803df08f44-6e66cd039cfmr19319866d6.32.1739572047894; Fri, 14 Feb 2025 14:27: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 6a1803df08f44-6e65d7848b7sm25832916d6.27.2025.02.14.14.27.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2025 14:27: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, dsahern@kernel.org, horms@kernel.org, Willem de Bruijn Subject: [PATCH net-next v3 3/7] ipv4: initialize inet socket cookies with sockcm_init Date: Fri, 14 Feb 2025 17:27:00 -0500 Message-ID: <20250214222720.3205500-4-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.601.g30ceb7b040-goog In-Reply-To: <20250214222720.3205500-1-willemdebruijn.kernel@gmail.com> References: <20250214222720.3205500-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 Reviewed-by: David Ahern --- 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 305eccdf4ff7..3c4ef5ddad83 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 Fri Feb 14 22:27:01 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: 13975694 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) (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 DCEDC1FCD08 for ; Fri, 14 Feb 2025 22:27:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572051; cv=none; b=NzSqmVHeXvhZDfGEzPG9gVdU0v7sZHVqGuAilzOK7c+diGNTu7AJldecF3wuCL7CiFX79UvZ8QoJUSS7wSIvvkPABgvGy9y2M9/yI4aAY6jU8HxLVFwAW2AravIRcs58BEpZooAvsJK36lAAc8JbwUmhORT3uzr1W90ePe8+QyY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572051; c=relaxed/simple; bh=V5ZFL3ULgoosoPu5EmnzFr55Ra2ewdgF+sSpU4Ieya4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QVjTiKU2wiVQ1jB/EUgPb/CgG9YWkG89M+/EOj1b7HziQ6srrgAz1HbsRm/oypcq1GkbOMjO718b+v3A7pPdFxCasEV+GxUKp2I81THW2lzkeEB7PM0X2r2WXKv7o4+wWTpkbRxqpdGy8jyp1FQJg7ZmZdBB5XlDrTAbs6UFHY8= 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=iHn9JYve; arc=none smtp.client-ip=209.85.219.41 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="iHn9JYve" Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-6d8e8445219so22699326d6.0 for ; Fri, 14 Feb 2025 14:27:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739572048; x=1740176848; 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=RwyGUWMeNL1A1pupcuqtyY3Swyxyu2aa4STZA3HcRBE=; b=iHn9JYveX5KYvLgg2axH6gdWLINMz1m7q4ENpnmGCf7S3mX2l8U6xWexuPAats9jws Tq/Qa2UAVe1gbGtfOIuWmaTROcnN3DtXA0puLvJOOwqQToeb6w+ytEaS8YQOnn2JXpTV y23AWUN4Clc1naKjalOinFgtPkufbUq24ZciXT71cUEAu3Y8SiDQZCO24SD1dqf2jad1 uFnWyGLZDk9Koy3R0rS7M41wDnDPOqevQngA8TvJU4DTJT8vqfsHVa7+kxa0lEO4QlxQ Sfb5QkhvSaD/NimTexeP6KSDP69t/tkitYHgi8DhOoM8pLgjPrV+04z7kgDxVJNokVpM XE/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739572048; x=1740176848; 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=RwyGUWMeNL1A1pupcuqtyY3Swyxyu2aa4STZA3HcRBE=; b=F8CUkFVj21OU5xI0F73efBZZU0Pw72EnILcvIUDF3EOJyBxbgzqZImpZ4Z4vJUN4FT J+82VD5lDR4yPrH0kOE6ilwad+zfSHx3n+PUcimKQOxPyrX7rXEuNP8DkhO5QEyCt8PV NyyBi5WcWn6CWBK4BTf3q7RxROphao+etxxnEuUpWiyt1fo4s3AFekXy8+oP7jnbP/fK 9vKyZueAuc+IxrpOI0eDAYcwkCHp0B34RYPR/S9erO0WfvcxoKljBk5JPHx/Uoz1H/hO 760Xi1mr9H+BahPwFOepa1cSGPohhUyD+sfpVgdsCv9p6l7UiB5UJ5fOQofg7lwcDSRd 6SkQ== X-Gm-Message-State: AOJu0Yy6Lpj1d7DYlQU4UYkQbubpKOA6Hkq8/ZphKSQN1p1TCWCdaIp2 Ng9UVnAzGYkFeWFqqy+GuvN1IQuuK4XFq05241EeGAy9pgzWZbcsJ3KvAg== X-Gm-Gg: ASbGncuowlBodp/4A5NOx25lGpd0dJ1WHBZuCGuGWEk1Rwjkme8+bJ7xcBFZmHeTM+j 0GpEdA00M9gxZSn+vJF9xyOMy4SIHz9Qhiee3gyUCx9sRY0cMTspE6/tKd/LZyJVDu8N1osrV3I gre3PVj4lWzCMhrmRn+AeJFqaObWIcpssZMrIXqYuyjMfqRsm82WQuwOf0RRPQ3c+HJ4O8gPIbi 2viuyYbi4JVM/owCeWhyaPBt7HFIGMDlHWs5Y5kkNgdnkQ/HczPw2geumbJSU+pza4d6eNGJxzK H/EIfFX/L9RlhgaGVSbx/xQ7FFkpIJLcAOj073UN77/tha8BaUFnnEskkFMMi4NElHBHvzNSLbH FKNQKzOOz6Q== X-Google-Smtp-Source: AGHT+IFE8yQLxEedbq5hIbSs27hth6IqE5txapyIwoYaRtcjYdLU4esUj6sLT213pcXyYr3RoMBlow== X-Received: by 2002:ad4:5ae6:0:b0:6e6:659d:296 with SMTP id 6a1803df08f44-6e66cc86b35mr19678446d6.5.1739572048658; Fri, 14 Feb 2025 14:27: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 6a1803df08f44-6e65d7848b7sm25832916d6.27.2025.02.14.14.27.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2025 14:27: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, dsahern@kernel.org, horms@kernel.org, Willem de Bruijn Subject: [PATCH net-next v3 4/7] ipv4: remove get_rttos Date: Fri, 14 Feb 2025 17:27:01 -0500 Message-ID: <20250214222720.3205500-5-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.601.g30ceb7b040-goog In-Reply-To: <20250214222720.3205500-1-willemdebruijn.kernel@gmail.com> References: <20250214222720.3205500-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 Reviewed-by: David Ahern --- v1->v2 - limit INET_DSCP_MASK to routing --- include/net/ip.h | 11 +++-------- net/ipv4/ping.c | 6 +++--- net/ipv4/raw.c | 6 +++--- net/ipv4/udp.c | 6 +++--- 4 files changed, 12 insertions(+), 17 deletions(-) diff --git a/include/net/ip.h b/include/net/ip.h index 3c4ef5ddad83..ce5e59957dd5 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), + }; 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/ping.c b/net/ipv4/ping.c index 619ddc087957..85d09f2ecadc 100644 --- a/net/ipv4/ping.c +++ b/net/ipv4/ping.c @@ -705,7 +705,7 @@ static int ping_v4_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) struct ip_options_data opt_copy; int free = 0; __be32 saddr, daddr, faddr; - u8 tos, scope; + u8 scope; int err; pr_debug("ping_v4_sendmsg(sk=%p,sk->num=%u)\n", inet, inet->inet_num); @@ -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)) { @@ -779,7 +778,8 @@ static int ping_v4_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) } else if (!ipc.oif) ipc.oif = READ_ONCE(inet->uc_index); - flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, scope, + flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, + ipc.tos & INET_DSCP_MASK, scope, sk->sk_protocol, inet_sk_flowi_flags(sk), faddr, saddr, 0, 0, sk->sk_uid); diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 4304a68d1db0..6aace4d55733 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c @@ -486,7 +486,7 @@ static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) struct ipcm_cookie ipc; struct rtable *rt = NULL; struct flowi4 fl4; - u8 tos, scope; + u8 scope; int free = 0; __be32 daddr; __be32 saddr; @@ -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); @@ -606,7 +605,8 @@ static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) } } - flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, scope, + flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, + ipc.tos & INET_DSCP_MASK, scope, hdrincl ? ipc.protocol : sk->sk_protocol, inet_sk_flowi_flags(sk) | (hdrincl ? FLOWI_FLAG_KNOWN_NH : 0), diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 3485989cd4bd..17c7736d8349 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -1280,7 +1280,7 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) int free = 0; int connected = 0; __be32 daddr, faddr, saddr; - u8 tos, scope; + u8 scope; __be16 dport; int err, is_udplite = IS_UDPLITE(sk); int corkreq = udp_test_bit(CORK, sk) || msg->msg_flags & MSG_MORE; @@ -1404,7 +1404,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; @@ -1441,7 +1440,8 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) fl4 = &fl4_stack; - flowi4_init_output(fl4, ipc.oif, ipc.sockc.mark, tos, scope, + flowi4_init_output(fl4, ipc.oif, ipc.sockc.mark, + ipc.tos & INET_DSCP_MASK, scope, sk->sk_protocol, flow_flags, faddr, saddr, dport, inet->inet_sport, sk->sk_uid); From patchwork Fri Feb 14 22:27:02 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: 13975695 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) (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 9D83E1FCF65 for ; Fri, 14 Feb 2025 22:27:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572052; cv=none; b=tMRWoodHQTQKp5eCSUb1avFR1KhOi6uED7wKK6BETrXuPwM0TNYS0d6t9+uC8/IUlavAzu/NFSa98I9dDD5kUXLZiBD6VT+6It96ag++CoeeDAWvgZCTgVGPSCy1qrrcTltyd1hkDcWLp9hvUW9XjOnEiqJYyZDNqswWAulPNFo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572052; c=relaxed/simple; bh=g85D/puBk1zSd3VtMeVRfXBQtPxNu1P76jbU9KEWX5Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a+KpAY5cw1Sl3THWZnmciC0OGA+LMrZ1JPPWlLQuTVZXK/A//+hLKkyKAa/VALjj0FM+lp1hkZOGdTACDskwy5OKdaCRF7r8Z9H2xF6iXCLUcPSQxVUhkv7wCAT7OZfEu5R9alR25Dv1TzQiBjb8nIAamkmMCtKKCwOFdMwoAN0= 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=C/x2Uib/; arc=none smtp.client-ip=209.85.219.47 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="C/x2Uib/" Received: by mail-qv1-f47.google.com with SMTP id 6a1803df08f44-6e6621960eeso18191726d6.0 for ; Fri, 14 Feb 2025 14:27:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739572049; x=1740176849; 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=S39GL7Y92z5SSLodPKQ8HjsJVpllKR4D6nW172CS67Q=; b=C/x2Uib/vndPL1/iWVCHmK5e4Sxaj1U9wAj7GFvtf30wfbZ86hiKt5v4TPOynmyCtX xG0K15WrR3k+75Bl8kAKhiI4b+t/UOLOOSQpQZOzPw8Hy+OAiFil+0UuT5fxAvgi/Tw4 dUNZu2pOQufqpLXvmzZxLRCbDjE86nKCqj0xWWWW1ug+jnv8nn4SQ4mW28WU8rd4QpfF lrkz8KNP5B92cDQVEAB6dmcpW3OzfiboUfN0/FHYFlY5wlAqUNYfIGz4qi8qCugasg+8 mcZEOPt8QuepKpoXnFKTWSideS4416/X8M4yNCj/ZkuMRhEZaSUBau+CvDi+XB2dwI3M zaHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739572049; x=1740176849; 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=S39GL7Y92z5SSLodPKQ8HjsJVpllKR4D6nW172CS67Q=; b=B30F3m++eHFafdz8uqznJztOccP6GLMsViRwUaRk5NiqNndQmnMbxbUFWOyYYMR+1j wj5giXhilyPGklk4I1QYVKYMKYb62k6HvBAz1QCuXbPzywUd+bEUHcppndFZYhuMbg1o MI3Ev9Pbk4SxGAM59EbFioba7JH9EwqUlj3OIzdswTIUEXWhfJcK56OUKR9HXdA03M5m qzs2vcGKciPydqe9kD4odFp4JoU1gcRS0JCU3dbftDPAcLyX4T6CLdtYc00FlXXvMyz+ fCSXatzLYpJjldSDqeXLz3TLYIIfL4fmyBV7x2KKtOuUSrhtAwKLhGvCgoRcbda8Zozk 5PhA== X-Gm-Message-State: AOJu0YxGYELUEbzLh9L76WhK+O5NlWG8+CGuHvRE/F5T23Ehb0B4oPR1 UW5DoJP5rjoS8QlM8SNnzJMkOFKY01MiYrprXk2pN0x0heq8/1iG8zd5Fg== X-Gm-Gg: ASbGncuGvuXNsH/zkgeSw36t4qxQhLEW0wjMurlecfTbxbtvq1oI8zblhX9MYRnOt6d KCE96KlwpGxreRZAbK87xoUBaL6Y2FvkahBDdLLIxDSAe7yws3YcC0qq8MfZS4emV7J8sSsXYzW SGcYS2mZgRVqtvD5NXVJPNV6189wr+9J9EZ2Yxxh4+80RFxLmSSh5Pk7CqoHXGE9xlB/eYdY6Ck n9O5ObiSbcwLsdEV0J6maOnpBOafQLYVVGcYz4ibDTwprNJ7igKuuDoGYTE+z258PE+jO7eDJKD M8o14ejfVipJRj59Te2Ftycn3/mEDVj66n7fpOdB3azqH77Vy+eq1Nl9+mM9t5fvFwN4ALAAWcX Pe+2SfPbZJw== X-Google-Smtp-Source: AGHT+IHBEU62iOZ0EtnPew3qRCjiua4tznJz/euf81mQ17J1RveLIHptiLkEMf708qQROPf8uWL4YQ== X-Received: by 2002:ad4:5d4b:0:b0:6e4:4012:b6f1 with SMTP id 6a1803df08f44-6e66cfd6d09mr13895516d6.3.1739572049451; Fri, 14 Feb 2025 14:27: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 6a1803df08f44-6e65d7848b7sm25832916d6.27.2025.02.14.14.27.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2025 14:27: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, dsahern@kernel.org, horms@kernel.org, Willem de Bruijn Subject: [PATCH net-next v3 5/7] icmp: reflect tos through ip cookie rather than updating inet_sk Date: Fri, 14 Feb 2025 17:27:02 -0500 Message-ID: <20250214222720.3205500-6-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.601.g30ceb7b040-goog In-Reply-To: <20250214222720.3205500-1-willemdebruijn.kernel@gmail.com> References: <20250214222720.3205500-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 Reviewed-by: David Ahern --- v1->v2: - remove no longer used local variable inet --- net/ipv4/icmp.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index 5482edb5aade..799775ba97d4 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c @@ -405,7 +405,6 @@ static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb) struct ipcm_cookie ipc; struct flowi4 fl4; struct sock *sk; - struct inet_sock *inet; __be32 daddr, saddr; u32 mark = IP4_REPLY_MARK(net, skb->mark); int type = icmp_param->data.icmph.type; @@ -424,12 +423,11 @@ static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb) sk = icmp_xmit_lock(net); if (!sk) goto out_bh_enable; - inet = inet_sk(sk); 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); @@ -737,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 Fri Feb 14 22:27:03 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: 13975696 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) (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 897A31FCFD9 for ; Fri, 14 Feb 2025 22:27:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572053; cv=none; b=Od/Q7nyK1tiqfJeYmjVohF5bsTXwK++YY5sKURPCDVeb2FGpzhoPbvV1zxsYY02l4qzA2GUCVgNtluD6yPsIpYuWq0ZN+lw93fGLxjkXJ3m0uGRgRfvJFrU2ECPPL5B1l98gdRCfJd2gPBsG0Oi6RUmbk4NeejATOLz598vCrzs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572053; c=relaxed/simple; bh=9F9LzCBnk6joQ0mN/TH5X4s1R83nxFwtBodGIZk3qI8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jpwGcKwm1fyxFvZojxdvfFo0+lylb6b62vWceNjDaQYtELLs8Nj8uqQmUwSOZ6vfv+Erj+P+H17xHlU0favVMFENYwhuvtlVvszXsMgOHFtlh/jCaqugQUv8zFAy63yz460Ohed6iBu1ahAeE0DB3NfZBwEoKIZK3FIQVL8JYIk= 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=UGjJFMFy; arc=none smtp.client-ip=209.85.219.46 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="UGjJFMFy" Received: by mail-qv1-f46.google.com with SMTP id 6a1803df08f44-6dcdf23b4edso22646286d6.0 for ; Fri, 14 Feb 2025 14:27:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739572050; x=1740176850; 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=V3C6DhsNzrCZfTSNf3dwNDQ3us1mEywrPwMErFIIvmY=; b=UGjJFMFy0I9r1JFxXQE3wdUxgQzplliuoEcdDFRfSzX0TFS1u9Xqv3gD2sp7s26D8H Z8OKcNBYMFHQymZDHRRHAM/OO41NphT4mQfw+cNeyw9pT91qaxKCFBkdpzqm4NTVzV6j XPlTPa0m2eXTf9h/uFu9SDzCWxpEghwXfXYvdXNePkyVdfl+ogoRpy+865tg41/xn4bL Qvh8KWbD+Tz6IW/W2dbjuLNHETLaVvBykdz6ICfRdgSi6nit2gwI01TaeLbI/ZQo6gp7 UWZJLn3wk3+prgHdWDCzKmgnykTiq23z+WbFVFNdlKWprwdsoQAAcYO5WZTJ7yCDSTgc 849Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739572050; x=1740176850; 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=V3C6DhsNzrCZfTSNf3dwNDQ3us1mEywrPwMErFIIvmY=; b=ukn6oRRaj70VqBHMgLSCq9Z9xOOXeHpKBA75suBRsgX7npSDwgMNnipy95Xif6q4ay Osn7ng3gOd0ALlevNI8cuE07STxjc4ILi+mYnt3SR+Am56qTXLZ79YRZ92oXJvdG20qe CSw3KA0qpRF0sgxPyh/WvjJFjg5Y5SrTVQCugONMr9x+oavq7lewG7JP94hmgzV4g0jE bUfa829L0qob9+Bh4Jcjy3+SB+RqrqepzRW5WhnXljO88ayt5Mjbg9XGNyvrC6Sl5z4B QrpsqaD3OSzWD3V4JoZVtqRVUwsgCZS9zp8IbOWS5WLvLxD68dkIz9Yl1dhc0BUQN824 9w7w== X-Gm-Message-State: AOJu0Yzy6uIp3RwaYYTOYAzZqD4WjcP0dfpvWuzn/QWj6+MaLbcJZcAI vTlE8qdB2UGjQA85+U5R0l1c3alFbhxccW0AXnt8k+XfCcKvCeS+fPh0tw== X-Gm-Gg: ASbGncvya0blrcFa6Ya+HbwcCCT94eU9wEB2kXv9fFFLAi1Ep0yhEdMPRGy73G7kwWR whRNbJ/5KXL/DeViMGa5rTs4DOAY9SBStzxjlue06y1ZwUPCcZVRDypujkYOzN7K/TnwdKKbslO 8/4vicrw5QgCiZsgT/3+EBiVg3MsNpjoMU9VeuHFqw0dc/GHxdmj/vUSCQGSpSDPr5CFN6dPCeC 80UZCoL5NyqXHeTzNch+7vx7hHfZMCD1oxhkvecvw1mUcd3j+uzcDikjeYinrBBl1OQz+IO9rXt 1X4BVGMClLD1JVOsVmHwVaPzZ3JPTebPf0ThrqiKsIVNtdW477P3X6WIbhWr60M7zm18Z7UMCpC xlf20KSYJQw== X-Google-Smtp-Source: AGHT+IFaRE1evWQhTW6DSXhsvnAP4wOeWlwZbIsAR63pkpF3Sf1B7M3acGRPiVKKo1Etbt19cmePfQ== X-Received: by 2002:a05:6214:2422:b0:6e6:698f:cafd with SMTP id 6a1803df08f44-6e66cd0554fmr19288026d6.37.1739572050310; Fri, 14 Feb 2025 14:27: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 6a1803df08f44-6e65d7848b7sm25832916d6.27.2025.02.14.14.27.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2025 14:27: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, dsahern@kernel.org, horms@kernel.org, Willem de Bruijn Subject: [PATCH net-next v3 6/7] ipv6: replace ipcm6_init calls with ipcm6_init_sk Date: Fri, 14 Feb 2025 17:27:03 -0500 Message-ID: <20250214222720.3205500-7-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.601.g30ceb7b040-goog In-Reply-To: <20250214222720.3205500-1-willemdebruijn.kernel@gmail.com> References: <20250214222720.3205500-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 Reviewed-by: David Ahern --- 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 c6ea438b5c75..7096b7e84c10 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 Fri Feb 14 22:27:04 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: 13975697 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) (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 26F281FDA61 for ; Fri, 14 Feb 2025 22:27:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572053; cv=none; b=Gp2yIu2C/jOyqetKXlkuMHr3hetmuOTFl5HcSinFgU0DFtfAkPmD9mMZHoEsCg+mjnr/c8Ln59+KhPYcMAOqzajs0vi9gUNyLezaP0beiniWdc6Cn2Xkc1AaTYUj1Pz7eLg7Lmcs5iHK+0YCOybtcY76gFYtC7vdt2k2kvh2KSA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739572053; c=relaxed/simple; bh=joZvGOGEIwYVx5Z+C5/7tkuB6wImoIdQeMMTMdNZ0W0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CHsfBhITlgfWPbCeuqJYC7kmcp5iXSVEJCldDc+mD4BXDdjM8nQyrPOKr8ZTDuXVnBkRwlZlmPu+Wb1AuIDb5z0Cq1ZXyKGA8ZrR14PgIhfsy4OqQOV7JpDr653aaCtZKYQNts6W7Ov319C5RZy0+O4O09Yu/b0SCr0JnLbKOfQ= 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=bAJBIubW; arc=none smtp.client-ip=209.85.219.41 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="bAJBIubW" Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-6dd01781b56so30135306d6.0 for ; Fri, 14 Feb 2025 14:27:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739572051; x=1740176851; 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=aOPeK5nfq/HuUL7RSYmUmdjY9pHbYIwxIJlQz6xUZbA=; b=bAJBIubWYcqSPS9U+rPpN3R8T5Z0XO2wHKTkge7INEy8hHj/DdbXGWEV2YRdTdRo4p EDFPWQKerh3Kv6h+2SIe/wArmU4lPAQGVX4pRFRpAGqL7TjMwrRmb0BfbvEcDTnWouDa ismSW3Qad+Qcg4PjsdRTcuoUVF9QKR6MXgFaZJcFUUh3wQi4cvwDhC0j40ajUAXdx3Cv N6/WK5PF+faTmbuSkG7twgGPSrV2A+sNqNZ6R6JtZUOOsifn4o7SSIo1vkkDtVNfdeXI FkD0KXfTH9xJsGRKltze+UmmWP26rZIg74019QzuP0hbI9l09WcsFPsPxoiNIta6QXo6 tGkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739572051; x=1740176851; 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=aOPeK5nfq/HuUL7RSYmUmdjY9pHbYIwxIJlQz6xUZbA=; b=pSlyTpERYmBy+F/JhlUDIr6GZ7+DSn51JnpJL9koeiHyErym6HVjOQee3mSE1/6kbO w6KYBwNf+ZUb5c/GzbN0xSmlE2wQpQHMyOfROVqx4bIMM2Rqh187XUStBaEVLzhLGFDt kDEB+dZuUS6FXbUZSQD8ZhgH5mkchVsplm3hpdyAtai3JWvNtFqMJk655CoJdWUYwxbx 3NeVf6KJliwulWWwh/PZDbfBs+8PgBYmW1yAU/YJB54Eb5vhSyPM889JDjPZa8UCvUlO 1Zdl8/U9YUcWiqAW9OgTwls3ihs/u5/gWU5U5xwSNL96Mv14W1GhZ+OaQWDU0LhkSOsX 6vTQ== X-Gm-Message-State: AOJu0YzSXswvc/CdTAHJ1HjCJ+zhXreEfhuN+4HGGts+1ObpTjFQ6IY5 7hPuH4EWQYgrx2hrlpPxGejdomASVzCUN8NoIuPa6mvu6r/dyb1whUJmkg== X-Gm-Gg: ASbGnctX4mlnhgSZDP2VYAKxG6SIAI3EMteqlFYAdd4c0j6GZ7eIBYz0BgblqRiRhHq CZdA259Znqn7w447OuU5LhVx1g+5E4zmbVUimTGTMxclOqqp+3aVC5qh+AdMJawZ1vmadGUQE7O 9MTOu+WKYMS8qC/5nWF7r6GKYGnAZwxK8PChr2tEHEkf1Xg6cUGzJEQkDo/0ZDbxeJ1xDInqwrR Fz2+yJSeIv+fKxYGquiYc89Pw9qflw0mSPB7Ct9pvuDqEDxPlS3srmPtQL5lRyq5fFysEm/LyPw O5dvvc2CxY60lziGxXunWignNo/LP9wnOf4ZInNM0c+rZZpSGCLu6jX8CV9geMIj2t48zPNXrL6 AzxrX/cNXTA== X-Google-Smtp-Source: AGHT+IF28UnXDmpT5s+K5UZvLWROtqwrBDyQhY+VXVRSitSLhBr5xE+PGHmLMnTsPM9ozbRCxmek4A== X-Received: by 2002:ad4:5d63:0:b0:6e4:3455:a562 with SMTP id 6a1803df08f44-6e66cd063bbmr15078036d6.32.1739572051115; Fri, 14 Feb 2025 14:27: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 6a1803df08f44-6e65d7848b7sm25832916d6.27.2025.02.14.14.27.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2025 14:27: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, dsahern@kernel.org, horms@kernel.org, Willem de Bruijn Subject: [PATCH net-next v3 7/7] ipv6: initialize inet socket cookies with sockcm_init Date: Fri, 14 Feb 2025 17:27:04 -0500 Message-ID: <20250214222720.3205500-8-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.601.g30ceb7b040-goog In-Reply-To: <20250214222720.3205500-1-willemdebruijn.kernel@gmail.com> References: <20250214222720.3205500-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 Reviewed-by: David Ahern --- 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 7096b7e84c10..3a0d6c5a8286 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) {