From patchwork Wed Feb 12 02:09:47 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: 13970937 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) (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 D31531482F2 for ; Wed, 12 Feb 2025 02:11:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326309; cv=none; b=NpDTku8pJcJheQNq1/O4BkU3Oik5Kaex3Y25saoL9BOIoGTfYaJcUxIamY1N7oQXPZS4aWijjGN61Lho07JTswWB7q2uuTRSe3DhqoZoHnpAk+0pJdKiPgBu2WHgU9f/Xb8FnC9hTww00AfMVkkXG8D5/OJJ8iNUiBEUJkM75QI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326309; c=relaxed/simple; bh=29T/1d3clUmyUSHtHun1fPMlpB4FKy7uaBxDpsIl8Vk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IxiTZNXggl1AWnLVQxz+rU6Hk2tdjtaWNoNPIY07t7csJJeS2wsWQ8RYKULUQ7/FS6Omf9sV95qlSFv7X60NaQTMfOmjF3T3FwI9UqzUJIO1rBeL2pOxKAk+LTWJAAx3eko8BHJQaVryS8sHHoJZQwpKe5uW6AxsKe/BDQ16zT0= 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=gvExjHDs; arc=none smtp.client-ip=209.85.222.175 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="gvExjHDs" Received: by mail-qk1-f175.google.com with SMTP id af79cd13be357-7be8efa231aso644845885a.2 for ; Tue, 11 Feb 2025 18:11:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739326306; x=1739931106; 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=Kbp0x58wnaxWx2OQ8r+M2p008qFTUoMNTJXOqZPPDes=; b=gvExjHDsu7th+WD2UMas0+9UAZ69HObWXF15LjEeqIDQVSkI70D/MRfWrYU1/q9Zfi CDSVwSA8XRUjEjWW4DXfNAy5sjdI84AlgXIBDjHW01+yck5jKIey6c671ewYD0daUjwO haC7NdYxDVkH71uEjQ/xsGFJALYZls0/0XpYzL+wjFY3SAuPSvn2WLAC8gNlhhnK5fOt 6ARSAgErUMw9GQQ5z2Ho/Xhcc8+8+qaNWY7RCRrFrdFE7gOVW2KXjj4MBrNSepkYF/Wb VWfhS/uUq1XmnjOFdu3A0r3izRvh9wrjAyuuKP6je0sfjSYOqAiwvUEzpHDhWxwOi4ST VL/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739326306; x=1739931106; 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=Kbp0x58wnaxWx2OQ8r+M2p008qFTUoMNTJXOqZPPDes=; b=LVzqOpvneztv7Wn2+2856d/qLugQdys/+Cpi4pl+LSZjEZhtSxDe5kXQwIHnzx+ty1 BaulLNbvn4xG6hHkZnLIaa5Qr5U+v4g6GOxDxdVHL1/d4obvFC4OcAYoYLIyN1KC3PyK ud2GrZY+Q4eMIf4rzyAbc5uYV91tqBnUsPRGzpE76dlAvJ6YXU1iTQo02ZPysOSkzDMF ykq82rDKw8myxdPyJmjo0TxjcQfKCA8MMMZ0IA3l2EzaZfv/O/Bar4a9smhghYv8ClUY 9zLAFeCAAOs1SErhpFs1SYJDYzLgZaHhAjCln2beX92jA0cTQvWBCCtDL//sANEN6bpl cBRw== X-Gm-Message-State: AOJu0YygnSVFGmf0YDKZgPCB/CW/NgAaeU/PRdNM69lVw8L3klOiiYvm dfKvQMIwe1QkrERH43Q3p5W6Rt/l5yx+DzcwY7bBDqAY8Qk70zk/aIr+/g== X-Gm-Gg: ASbGncv4H197T9WLWRsXCoC9CliayMWwLQ4M57yCUBQC5AXsWhpTV7Bz+wcgtPWbAQa l/b/w8UGl5DNHC75LPimEHw3S+fBOTFPJGVV676MNMrCQwBPJ+ed7BSyD5okl7p37ceINmRwffz wrPUUY5pR+iTyO8WcBvQi3PpePs/SrGVQrikYoQVQsgUsdDh8UyIGYNB6mH+MKqRK8DGorqMJtM ExrICHVl6PcE/Uq9AZZvX/fDQXhcMeq+92b6bsM/m+Y7qU81tZMocfHl1DfF+v0ZfnMF7ZXGWRr 23jj2Y3H7/tx0m8E7pG6HivCxapBzwr7HZo9vZisTAgee2Q9DHCs4QIiTZSLS6ECjVaqwX//ySB H0h5332txGg== X-Google-Smtp-Source: AGHT+IGsuUJ6x8c/Kmlo+7xDnfFcZI5NthfxvdjTRwqKJoCKZAJaT2PnD5Pyh6y18iCrwJbji91GCw== X-Received: by 2002:a05:6214:19c8:b0:6e4:42c2:dd9a with SMTP id 6a1803df08f44-6e46edbf613mr25590576d6.45.1739326306663; Tue, 11 Feb 2025 18:11:46 -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-6e44a9a524esm58256126d6.5.2025.02.11.18.11.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 18:11:46 -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 v2 1/7] tcp: only initialize sockcm tsflags field Date: Tue, 11 Feb 2025 21:09:47 -0500 Message-ID: <20250212021142.1497449-2-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250212021142.1497449-1-willemdebruijn.kernel@gmail.com> References: <20250212021142.1497449-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 --- 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 992d5c9b2487..5798a900b7bf 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 Wed Feb 12 02:09: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: 13970938 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.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 B5E3F1531C5 for ; Wed, 12 Feb 2025 02:11:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326310; cv=none; b=ZAuwGu4QBT4Xgb8fHbKpUnTdDrPalJ5ouR0G8nlLhZg3aN0QCK+SaAg/+Z/LcVgg8qJG7ghw+jua5Waq2tNWy4O/XhJc3GnjoU58RHCeMPWZbLdeEbKvqjAkUx8BfN3iqZ65hHCLBkPXAniUZxeknd7+wUURuBIpw2emB/pr5NI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326310; c=relaxed/simple; bh=SUQ36dT7NCquYR/J3wrYi9DAuLdQ7lLdOj3bIwQ95TE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QFHLvGTBncMrJUZN42OvSkE+Wf3M353kkUwG3e+srivuV8RDmrARuQK3+KucsgFanhDH8sEst/TZoRDlEiKbfyX7xbIFZeNtLB01c+DJJEqIwSjCFH81mzvcnaUT0aO+VBg/aHcGEjCkRSVnwS25+8uOIupJR7SjUhMBBpENLfI= 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=XwmRZH3c; arc=none smtp.client-ip=209.85.222.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="XwmRZH3c" Received: by mail-qk1-f177.google.com with SMTP id af79cd13be357-7c05f3dde21so345740885a.2 for ; Tue, 11 Feb 2025 18:11:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739326307; x=1739931107; 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=XwmRZH3cbXKQKY0m4hIOT7UaE8F39GU7LfSbH1RqfOQQN/l7FYMuKPLg02n+q8+sB6 528j3cK0dnUiS2q2cvceaasrICC/LxDAMu/bg4FpcWirWRFm/mttFu4HwJKZig/4Aeau kPTLpDdGbAwsTAgkw9ioELnADFT4SD6UXnVlbzftOvqLaAtmyXzDepQqCmwkOWgZZJyC vERd2DR4o+ey6TKT/1mDshtBG2cfTGQtVRmC2QxVhui574r2OlMyyZEydTCfQYnRN4Ta LcpHTnLly9adIzW300LIX+F9/APA/p/XVoYRv7ICqLn3hqlUNnIzPcqXcy8/p+grwp2+ Fsjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739326307; x=1739931107; 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=tS9c6BLt9JQlRyOLRKstfe6xFeCcXRf+5nNwmEFZZ47+PieIe0icZ73GqoMVrSl7O9 b73wcyxb/l0H5ZFUEedG0KLvHxBoFs3FgENIPr7TfSJnfxsX6RtT/EtsTyoQVfXkjFyQ 4sbagu0WKiSDG35Uho3rwgvAtT6nacMOB/FNEzrFS9DReRT9FTvI6Lnvg1oS4ZKVfIkJ tf8vyLwqGZRWPKC/7mxEEAjZRtrq1Z/DKAQI2IZehUtD1KIW+B4J2qdir54GFSJwDtRh D9W5TbunQsbNzp52TB4SVXkIS+QN8L/SJ+TcpFy2L4uCv+k+ywBxPf6HhjAu1Tps0Sur lm9A== X-Gm-Message-State: AOJu0YzEUTzs5qiUsmw9x9BAI4YT98PldgzPedUMwz35YwqCPMmpLCJa JdAOkP+mGywDU0hZoohZT5Z4BNpY4MOyZy3iDEn3125W/mdYqp8W7bA9CA== X-Gm-Gg: ASbGncsPmeKRayJqvp7k5BI1DJZSARXy5lOvT3uDDWIuZ0ENzqc+LKMxXIa+XxKfkk6 S7U499Aghw1xpDPfhLrve81uMfgA2Y3nvcuEYpfjFfvb5uSly+5HowlV1K1Eoyyq1xplpKto5HX XojV8XvgCIdsZfz5IYRHsylv4LyHCBpQ4vg/fFFx7zyeumBX3tdZXFEHdjceI0pdgod4dV17fZZ uhz4AIr+5oAdE+SygHCn5IfzpNuUlrVFsGVoFD0EDlvydtrFuoFOGdT3+AurezcZ3EoXimohBmf nNkA5zcgbksD+bwelWfR9tFnc3kqUo118XyWhvlgKMOAhVrA/cLs03JRSnZvLMqs7LpUMRyfOOn uEomBl56jBw== X-Google-Smtp-Source: AGHT+IHd0KHmhhGVX3ciUGzERKrhWqJ2KmhDf5zr5yP43a494Nx/YN5+ZA59tIgARNpPGzgMrnvPOQ== X-Received: by 2002:a05:6214:110b:b0:6e4:6ff6:bac2 with SMTP id 6a1803df08f44-6e46ff6bbc3mr9824506d6.40.1739326307464; Tue, 11 Feb 2025 18:11:47 -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-6e44a9a524esm58256126d6.5.2025.02.11.18.11.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 18:11:47 -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 v2 2/7] net: initialize mark in sockcm_init Date: Tue, 11 Feb 2025 21:09:48 -0500 Message-ID: <20250212021142.1497449-3-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250212021142.1497449-1-willemdebruijn.kernel@gmail.com> References: <20250212021142.1497449-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 Wed Feb 12 02:09: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: 13970939 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) (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 7A775155C96 for ; Wed, 12 Feb 2025 02:11:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326311; cv=none; b=jWFnOs5YoVAT1D3QGi5ESrK3kkAOoWAIffKCDem17VmmzvAYwjBZWD4FqlijffTTSolSFsRjdS+KuXrJKLHom6fXC8mTQe2KxYwdBCm+VnblzXH5fAB2yKM6G+CBbd4TFsIVzCfX8hJdjsKtqUFqHloIjkSqa98m+fubaGwDPhU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326311; c=relaxed/simple; bh=lGZWu3jPg52+pH/sJcRfMQ2FRfaimKSO6mvYUMpmPS4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T9tbe3WLvbcNFk+/VFQfJpXMKkVDHeBDhSRumomR3SbHMaLhiePwaI4igkPZ440P5qVZHjJlhonF+zRAbP8RX/tioWVRdK6EqFcxcEYc9TrrvKbN96Gu31Vx9j0XXSCsrxwFUmEjBm9mnXaHqWoeeM80Z//TBue+p7KQhWm9fMk= 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=VDDd3Y64; arc=none smtp.client-ip=209.85.219.43 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="VDDd3Y64" Received: by mail-qv1-f43.google.com with SMTP id 6a1803df08f44-6e46349b7daso30708236d6.1 for ; Tue, 11 Feb 2025 18:11:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739326308; x=1739931108; 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=VDDd3Y641nxUU6xjj+XOtz1faYrgtqqGIkzpQrqRJMxvTkBLjFI06/uoFbY1zC6QuP M+Fsblo/gXLPEtm+AGt5bWbrcOUpenIZmZG/WFEv8jNOOyyNWY2no0F16nDmInwpU6bu knDX9BVbw0ZBx2ta1eqfHbbTASjXK3P/hE6dkTrSMJ3fmTzYeBKgO0aUbl1jCJnOBOoV AnN3JPD6D7b8ovLbJDOdJXa3W+89+/pV6Wu97NVn86yRvz/rlZuqs3zA+7VlWYBws/4b 1iPBwHwbWNSmz32vIaZAWQ8XiSQ//DnbbDrSnltsBjUOmH0DnuYt8G0tspEdoraj1eCW CXbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739326308; x=1739931108; 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=DqQQxq/BYI7k1DO6gKBtWzk81OoI7TFG+F6OByF1b99QtgiLOfTIounIwXHOVlKcIT IGGZDi0z66rn8doV2ejTh4fBOjflJVFRxAuUFaWeBu3Z75jdQq4bLhL3N1hCw7aZaBSV djEMs/cSUblzv/dCd1EsMP607+J+zvEFLkiAvGfuwuiIP4l4z44v2T03fz6b/Ox0zZLx gYVnub+P2gNldNxYS54tPR0/KmQgLw+iwfIqNvLvxP/cVhtwTL+W8dvZ2bDGIkF6Azkp 65iPM0kDdEIUpf10Llmi3wUE+VdhRZiuVA+/NM11+AVBJP0QWATLdBHuPLMzDhfZG6Li NPgQ== X-Gm-Message-State: AOJu0YyQCYLtS4ZirosAakPrlpvWolaR1EhjxJQx8BBzWeUUqgdcHLCB KPFqeZMMN88hHDyRY82L7DlWSVbMjgDbnmGUIcdZManO37LUKw84VV0fbg== X-Gm-Gg: ASbGncufGsPyueMZYyW00VWmQrTfwj9601ZSqg5uxXNjNEnwOeIyjyXq3TdWHzOArI9 V2t5UN0CWrsVCc6Uynkr9PrYpb61PuKO7x3YWjLVZWlsTmDhQkZioLp35kB6Yn7utZ4/ZHLGbne MESCLn8UfnxJ4mmAAe0Q0EEOrJdLZ8uAQ7qj+wkNK250eaMKbpzCHQFwKSU2eh31eh2E0HCm5E0 knuN+59brkRXebGIkiUU55bIguHwy+nUbAFL7eI6kgw5odiAONRK/22ifocpb11F/aAkhnzt68j xJwMQam8YI8Nm95kTdeeCTD3FbUR5LmY/DUvEH0B6taMUHlnF4xvaRP+peSKfeDvha5SzJF5++I 8XaIGC1G13Q== X-Google-Smtp-Source: AGHT+IHxU1ot93AxPIs6drzNiaufV8N2qBgz4l8EfuPJdb+NzOIzjnTh8dcymldvF+fDFscvfHRk5Q== X-Received: by 2002:a05:6214:e85:b0:6d8:7ed4:336c with SMTP id 6a1803df08f44-6e46ed77270mr28191786d6.9.1739326308282; Tue, 11 Feb 2025 18:11:48 -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-6e44a9a524esm58256126d6.5.2025.02.11.18.11.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 18:11:47 -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 v2 3/7] ipv4: initialize inet socket cookies with sockcm_init Date: Tue, 11 Feb 2025 21:09:49 -0500 Message-ID: <20250212021142.1497449-4-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250212021142.1497449-1-willemdebruijn.kernel@gmail.com> References: <20250212021142.1497449-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 Wed Feb 12 02:09: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: 13970940 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 728F118D643 for ; Wed, 12 Feb 2025 02:11:50 +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=1739326312; cv=none; b=bgLVYHqHX2P5dmQU01HxXOJYIhUNVCVqJfHNYvBNSoCSh0RLlQSdssAWNa3LeeGRLeYPtck+iYFIpNTFqDCin13fk1A3+WDIqeC9ZLAreBG4ABq1KNkaHirU1zlfhWXCLCPHkdUDU7cbxj0DKEfkRp31X2+e+w6smAf9fL8oLN8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326312; c=relaxed/simple; bh=+Z3nqKTJAcjez/+GWwupNGGqQLscqTK+z/YZWz2IfOM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O/ZgYNbeCNueLcEgXaL4vVo1X8dG8WvOr5PaYpNhhB45ui9xdKb68JCCiuWdh2yhAlCx8VQMfm6vTXW9BY+mqXuJg3fjevGAXV7oWV+IBHZfbltHySuHsNe66D4dxcOhtzeCY/SsME7ugesv+3CHQ4n70SMrTZHl7cHJh6YSBos= 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=CPCkxN6f; 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="CPCkxN6f" Received: by mail-qv1-f54.google.com with SMTP id 6a1803df08f44-6dcd4f1aaccso95932656d6.2 for ; Tue, 11 Feb 2025 18:11:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739326309; x=1739931109; 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=qUsNq58HlE/263yhCAnC53H+mDgC/Z+T8PEBGsXfJVE=; b=CPCkxN6f4zGK0lmOmR/6X/Qsa4nNFBDh75WjZIXeo5Fg9vrPAssuTotFu/0PXJqSIV GibP6sUEsl4b4T7Wl3lZxPxMTRrZ0AO8eUM+xjbl+h4FRaJUlCH/SGknWBYF56zoePnV rKMb0y340X0l17MQCjrYpDFkv7JY/NP7IBZXyywIAobbYf2AGHnWOf3Iyaaui/lG+cIw NXHt5Rh1hVw0iYKnvcTGj4pHFiD8Yum/ah9ubrVFmb3gevMKcE0h5NjNwZhQ5XGV+Rsk ZcU5Kmz2Nl0MNTBqovmY1XpJjb/7pcIy+em8R5Ndt2aAmLlzQJZe4gADy+SCdLVyHtxJ iOFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739326309; x=1739931109; 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=qUsNq58HlE/263yhCAnC53H+mDgC/Z+T8PEBGsXfJVE=; b=oLiozfwiG2YmzSZlxyro4spvYquw5bKO4ktPiQt0NsiNm1FvxIhscqDMtZnEldE73J M/e+UPmiUDeqkZTmGxodoK53n8KCUy4gff9lPrd/AKbYfCxRXhsngtVqXzxVwOez5vJH HMk5XEG2W1KOMgX0vsk6wAWRfafAyT4er76l1mRz/ziMG38F0x4EdW4zVS9AKTYi+T59 +UHcJQa735vjOkTbBmt/l6YEiWqKUofzV7Z/Y8tcbqcdaGla5yBq/QquYvtlmJAUJArS 0l/yutNKXnxE6/AKxSxlZ9YK4BEEy6+Ye2GGJionuW8hXgfNlD8cmD6zXBKjtcfkTz8y Pdeg== X-Gm-Message-State: AOJu0YwTL6ahYjRtTroPQwPXQ6+TOUxFjkvUcmdWeRlj+FfYm+aZ/PA9 rp95TMC4/3t7xpoF0XNSF4tQTSXXvc24Jv3pBCbxTAQd6UwEVs5ExwIm5Q== X-Gm-Gg: ASbGncsIHloOHj8j1APg2cFbxQ5/0xTYVcLnyQTn3q8yfEiP1Spl0NYJs/A3U3KCrYr lPV/xxRFcOzwEBTqQV57EEObakQgpfY9r7pb/nvKl/eKxS/K5ukP2nsj6Q5UFkqEIt0YfZ6AD6z bxYL1PpEEDOlKt/vb4EkGhl/rKX4iY/XJuBKvFiF5Ik8qnNX/lkz2E6siIQ9rZsvkALHQnxoAtQ otyuQX7CaQZOCL2myVGv4scn1bslOuHsWvdAwpDmTY6i0mPkj21G2f4+OWFh9PaDjVrdBUKZODX w91Q7KloSxroJgDDYwRexSJhE4n4Ufno0GsbRzDMKioe253KPyLONIC3+G+fzO9uYn3ABodEaGM SR+4wD3s4eg== X-Google-Smtp-Source: AGHT+IG4wia817+8BlAsvvEJo7Fbtbq/WEA/+hQcKkePMR9GQUSrNxNTxFbBb64DOOwS2IVuQ9cmdg== X-Received: by 2002:a05:6214:cc9:b0:6d8:aba8:8393 with SMTP id 6a1803df08f44-6e46edb548cmr24060886d6.44.1739326309264; Tue, 11 Feb 2025 18:11:49 -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-6e44a9a524esm58256126d6.5.2025.02.11.18.11.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 18:11:48 -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 v2 4/7] ipv4: remove get_rttos Date: Tue, 11 Feb 2025 21:09:50 -0500 Message-ID: <20250212021142.1497449-5-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250212021142.1497449-1-willemdebruijn.kernel@gmail.com> References: <20250212021142.1497449-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. v1->v2 - limit INET_DSCP_MASK to routing Signed-off-by: Willem de Bruijn --- 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 6af16545b3e3..4798500f3398 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 a9bb9ce5438e..65519b1a1e67 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -1281,7 +1281,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; @@ -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; @@ -1442,7 +1441,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 Wed Feb 12 02:09: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: 13970941 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 F39DD192B74 for ; Wed, 12 Feb 2025 02:11:50 +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=1739326312; cv=none; b=PLJlVwVj04O6l7Aj3N4/Qq3Km1BKf6tBCLnFaaUVospJcbVjZNZY3YBSIlq8ehIyxIQR91Um8J42Kd1uCbgsdBy7dBor/WXIApj5b3Y802PpIlB+I1QcgfSIYpneHjRjCuWGmaIl0aLF20xXLLCe7YUYZ9C4s4pkefMPlyYa7Dg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326312; c=relaxed/simple; bh=CBxGCPW4+yvar/wF401UTO44GTJBd0WBDE+y6QfJYf0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FHFKdhoZk1QUaVWWxOfKIexhpFlQae0Wf53pvE32tkhbkJoLUKR+mm0zqO+JfBFsJMXLRMiVfzXs3aGlrE8yo3fcHEYQhlhx8lkWcis30xgbA8VxvaHyP8YD/HSbcC6VB+9KUt+Mivk8EUSxpG7hgpL5kHTuAqYYkM1TxnwoLRs= 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=V6Q1NPcK; 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="V6Q1NPcK" Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-6d8e8445219so50380906d6.0 for ; Tue, 11 Feb 2025 18:11:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739326310; x=1739931110; 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=ve+mcTbttDFJtOFy5NeJamyMZhH67HVi6U3zxdpocD8=; b=V6Q1NPcKeYgzjw8kFh+SL5GbMtK+XbtZNJyU/6nsgPZRA/Fij/DErWmfccWv6ls5aD NAvMR+LRnHVx6QI0ct00SiwgTaZ00a220pkc5ulmRF1ZNKfK5kxQZclb5fgVfhK50l4T +aLDdHJUME/3+nlXh+qTwDzDL3sF/syq9cmlVRgM4/R4mD/1zuYrij1b/1RFWLDJn3xj iFs5BqH/XbcRx9Upr3KhIGCsNCjNpL3cI5UM9JKdo8cXSOj7EHM4NF6tMbDDyr+XIdYa zinJH76xmEp1kVKMDDzq0/zUcnaq5q57R7N4O32jWb1/bhfogmuYhc2C+z1/CkH7TKtr Rj1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739326310; x=1739931110; 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=ve+mcTbttDFJtOFy5NeJamyMZhH67HVi6U3zxdpocD8=; b=N3EuA/GxfRSRyiFJpqNhW5nrazeuI/leOf/D77WLFfCLVilLMiZkoxDBTwHC9aeGZ+ IArfQtDzx4bKzZq+2kc30up5JNGorpRHSx7u7t0mBT9+p5j+XzD50Ltl3pGZP9aO8mI/ eAgGIU0MbgAuaPb8Epc8P4D/UqWJedd6+O33InBHkI5SlL5knMdFlWPz7vPZ+3XIrvHH XB26tcrUCd+6Sl6U6kZx55WScQbMphb1cxt56MDqZP+GTIvtc8lfEwuHztQLBENXr0Qy vFXsmsA29wkiHxpOfDCoX+I7rQtxVP7OJTTYeLDdJ+4l91JFWRItCSIo/AiO3bgHG229 gdcw== X-Gm-Message-State: AOJu0Ywzy01Nd6iKd3cvtSPdsmD906IERWAUOHf3VLG4bMc15O42HTtP vNEXsfVU27Cco34eC3640petDzJhxe6mFKHYPCAtdH7RYXiMSeRy4HksYw== X-Gm-Gg: ASbGncsyCMNcvYSJm9ueK3F1jVknMu9RMN0Mk9WpcqUZcTp36IA4W3Y5vb23X4YeIag TiJ9O46fJPJbWIfToROcGFOJfsFHCHaHYYPSmuHCjkBI/jxh/ywYyS47h+pjEViKyudnS3KbVzV DHLgIAfPBt0Id+fXCs5MI0KkmfFZy8Bbos2X2zMHPPSXAWLLOpX+65l1f9yZkbY6AtJa4o7J1Rx Z8q6LSJzqfu9/XbYGsFLr9RSahEajE/6bWttrHDjkuVRvk5E5OYlxQ0rVcG0/XIFLO8/SfMQ/Kc hey9eCrMHt5jl/oVt7iEF66JDm08EO8DoQE28+fSKfwrc69eohSi5F5ork+Fuyt1xEK2tMw4s4d OhmhP5tVtSA== X-Google-Smtp-Source: AGHT+IFsQPxjxZkxCrkvMrOzMyvFbqbnz1TkQx21sl9acx/LhK0PxWg/Hr9OHYksNiy6syOfkHKlng== X-Received: by 2002:a05:6214:d46:b0:6dd:d3b:de27 with SMTP id 6a1803df08f44-6e46ed828c9mr27651946d6.18.1739326309987; Tue, 11 Feb 2025 18:11:49 -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-6e44a9a524esm58256126d6.5.2025.02.11.18.11.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 18:11:49 -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 v2 5/7] icmp: reflect tos through ip cookie rather than updating inet_sk Date: Tue, 11 Feb 2025 21:09:51 -0500 Message-ID: <20250212021142.1497449-6-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250212021142.1497449-1-willemdebruijn.kernel@gmail.com> References: <20250212021142.1497449-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. v1->v2: - remove no longer used local variable inet Signed-off-by: Willem de Bruijn --- 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 094084b61bff..c42030fb4ff6 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) bool apply_ratelimit = false; 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); @@ -735,8 +733,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 Wed Feb 12 02:09: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: 13970942 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) (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 D426F1C462D for ; Wed, 12 Feb 2025 02:11:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326313; cv=none; b=ExrHg2Upx2sIox/Lytp7jcd9y+RP5/BYLHPZoMU4cgcoYc8L8+ESokqVLZycJWKDDpVw/UlbubDxkwFA15nD0Ow81EHJAHQUPT/kZrGeUE1Sno2cJEGQg0QiMTbIIzzick5NbYHEV3nsbKSxGxkIP4vYEFiASZqWQLNt5CDWuUU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326313; c=relaxed/simple; bh=m4S/w2T8OkBnZvB+e9Gt8KisVeTLYNX5SCtA76hGXHk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YW2Sx41eFzzMxyW6lNe/t/x24IxI24piWv3zAx+p3rQ2MBdBdWB5q/mIJu8lvOTypMH0xl3kiyGD0pkN++jLFf0VER3SxbKhnG82nN2Wa5tOB4ZPt05o/Mcms1yIkTqSUpTo5nZcRnaZKLGkuAD1E+Uhfhcj2xBsfZTGxzANkm8= 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=FaTB330s; arc=none smtp.client-ip=209.85.219.53 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="FaTB330s" Received: by mail-qv1-f53.google.com with SMTP id 6a1803df08f44-6e432beabbdso47266776d6.3 for ; Tue, 11 Feb 2025 18:11:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739326311; x=1739931111; 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=kbajb8qUJqVRLMyDn6njuBObgVVKqIDxpjIdJ1kBpV0=; b=FaTB330sr7ZXWI+oDwk7jQ9WaeMu/4H9cZrOm9jE6P9DkhgNa22ifaMUtoNw55ZUie FQQ/DfU8dSyow+z7v2EbTCxDvXE0TWXOAba71HJ5mbk/TYwaRdHuYk0rMP7DMV8Q6Ig3 SyRguNe3Ofhp3iLKV6w5y0+D1IHwb30+sX4Ni1gw4iKAQ1r3RSifWsd8L6WP6bmZu7Ay Mr2asAGjpPfq3MGiqfjfuIvRvimXdUjKb328WreyZ3/1jddLkxEmYzULNU4PZGFtdYWO KwgmG62mTXmElJq3cgLS8LDOB/ZGcu/9bPmA5h9IQijq/N5tkzycJNwbNMCmrlkJ8UPD M7Rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739326311; x=1739931111; 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=kbajb8qUJqVRLMyDn6njuBObgVVKqIDxpjIdJ1kBpV0=; b=B3IzMikhxgol6rDgzvX6cVufzJ3K3qYlcA50MJgSsF402Z8vS9VJbIGYwyK3f8h68y CAptnhUx0dCmjtpW+TR+5ld9Ia5NQwNL9hmBv+qj6JEJrJCPhng/C0DSqpf8p6H/ofVR TKwA047hukYunQxruf3JMmzTk55lJYv5UDSjPIb2HlvX1cnf1vfdruZcz1uxO8BsedsB 5lPUwsjsPdHw0B17J5fdpwOPm8R6xCu1kO5aFbmksxZg6bcZcnREz88ciWzxUKiqFfLq fyDQ2kGZna1Eb1jjPIyRK/6sHP1Ntv9I9EJDt0FngU3iANSIPVPwMAp9Tb9csnTR7fqP juzA== X-Gm-Message-State: AOJu0Yxvm96qrBCNJdM9eCpWDSixNdO+e2/7N61f8Fh78WXLFMZB0Cfx 3qG5skiwKq6OAXUznsVg8E1dRvO1rnkkTFnCtZMJ+RvQHsrC5spfTNQIMQ== X-Gm-Gg: ASbGncuNMWu6TzntlRk/ABgE8P72ksAcdANP/FZ4T2yIw58WVEo9isLu69SGZAZBVyl 9d8I/BC+ABLD5cLzrh9ckBZWwGgDn6BF2+KXihG/Wbp3iii9VvKF/Z+75AiHCsd3OD53uKk4WGk barBwTvmJjDOUX832G1njOS/GH84qr2rxmOg4RBxrdjhyFttFPjvDdq9z7eswIWuWYkigcTfeYh UjdnlpawdRAMFYHXGK7plRYlpMoru9sQ2NE8F+g5s72a1YrSwLLdAqDCn++QJQsu7jKwyuoaB78 7Hkf7a5kmfE9IepZNL4B2EE4Dz9A10atC3NSKkcbko5tLqzZFwMr8cmzWMrh+ybyhsgPJJ7cg2u uS0fJXQxyVw== X-Google-Smtp-Source: AGHT+IHEKDNNLaPHACXCSZMOfN7ollBlODSM8YsI+Z4mhTrlO2nSE/xzZCaYoXq2c3FAfYQ4X9Vurw== X-Received: by 2002:a05:6214:d0c:b0:6e2:3721:f2c6 with SMTP id 6a1803df08f44-6e46edabd02mr26538586d6.33.1739326310719; Tue, 11 Feb 2025 18:11:50 -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-6e44a9a524esm58256126d6.5.2025.02.11.18.11.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 18:11:50 -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 v2 6/7] ipv6: replace ipcm6_init calls with ipcm6_init_sk Date: Tue, 11 Feb 2025 21:09:52 -0500 Message-ID: <20250212021142.1497449-7-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250212021142.1497449-1-willemdebruijn.kernel@gmail.com> References: <20250212021142.1497449-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 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 Wed Feb 12 02:09: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: 13970943 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.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 6ED451D5143 for ; Wed, 12 Feb 2025 02:11:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326315; cv=none; b=ECYcj+pr3NavnhZJ6+zsE25oYrSEKnBE1sIpQmqIl8VIclB5hP34bBHmANHkiKAeuMTos9TtUO6fy0zaAA47pjovyR7RkNhNPECLGFt+ZnbHTTsk/1rOIZ9WSXEnZBuqwWgzFaxhgzFdqN7oStTkrmo7tkyZ3fUkK1nqejdmugI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739326315; c=relaxed/simple; bh=K8WIcSIcgARTysfF963OEf80X2c01RISMiQKzhFiebs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a3TVCXZKVOZ6I9oNnlgl+Fdt3xV7mPuJBag12IHYdSAiDn8YVCXS6/eYsJW91iElC38GCvYgwQur1J6+gSrgxdiGbmzHxyQlCP7+u1XM6pJ/KX9dwBlSs9klKg69zWjuUoNf+TwM9Z2ilYbgAUpktQoxhKVBFQ7jnMpKkniuuN8= 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=LiRk6zGf; arc=none smtp.client-ip=209.85.222.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="LiRk6zGf" Received: by mail-qk1-f177.google.com with SMTP id af79cd13be357-7c05d75007cso382897385a.1 for ; Tue, 11 Feb 2025 18:11:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739326311; x=1739931111; 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=jw7vNBV/JJp3b9usvmISA7C/WVlPdKaG2q9kPlazBcg=; b=LiRk6zGfsaP07WowTfjssgxwQ1vfolq7NTdcBvjsUN3yHw7d9Q8MEr5xh+bDHRUObX pY8TUJA/ic5+7H3CgoY3VD89TBOZxcyEa1vb8o4B8bEmeGKqNws1fzWSd8etWxUw75jh cTCljEkCkqaDDEK7ssqCDpv8TKhNHuy21KmrUZ1LNX3iBb07iU6YW9BRz0GLieyDicJ4 RRWLQ29ENmLIluutcF8N+I2Xvsmw121pQ3AgO0cBSBGCXnfGh6OznRoGJM8N6FtN3qRa ZQ+Lhiv+Q3sa/U9Rhr9QX5J5fWauVYKf3oguzul9edhg9JH5vI2OMqhh6RHr8QD+38ru OSPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739326311; x=1739931111; 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=jw7vNBV/JJp3b9usvmISA7C/WVlPdKaG2q9kPlazBcg=; b=lOzDm4CgnKAHK5a0H7QHf7oq1gItkhtQBYNEftqgDplavQ40KQAU8mNSo3o9UQ156O +2bM8J6IYxPBfNS8jE9K2LBU/Pi2mJvta1O9LTE6juFcXYJsaa0S4i7Xqou3eUHv/tcM T9CXXKHFYSv6hmzgorTRDD7fflIMsgGC0Ev8m4qxUiRDXynwNeHraLnAmqIlpJ5fBFUc NsYEOdigfIn/Pg5ymZ8Ml74i1pWpsfUBIa0CMSIQadF5qGJbhV7f3zKN5aSoYMue4/9f AE+sWLKvDMo7sP4FZoCDEWiU86BagHHoU6t9WAwVew276MqtSLKtZFp1vLpCk62ZLDq4 9Oow== X-Gm-Message-State: AOJu0YzPaPjQWcuxXxMpYwh25+3NPeQI/47RGT+nXZCobcid3cSuvbO3 PYBRTTYxFn1zbLiMHrBg28LlN3VhT/KEIihN4s3RhmXwphYzEt6mMfGTWw== X-Gm-Gg: ASbGncuMIEJQ5oYbZvG671S2D1e03hGK2RGS+B/tH4yPC6LTanVls6CF8h+EyX2IoJa 3yR+pSYZTF9zOS34J9FCD5naKR/e7QuidPXkXNJXHPM2VAwUKAi6mUd3ZXZpbaGhaG9A9RZXhIQ gchNtROfsciYXxAw9OprPBJGQ3u+REQgoONh7lNBBh0dmkuFwDtt7Wv9MuHYj88shRgNRox3Qbu esOZah59Ym/XFoKjU4Xz/kgstRjkjAyYbMBWrvvRuCNZURUG5JWIHmxdypAaWoYZGu9cavAN5vM 5aAhUt3YkVxwTrfQHBSyRY3kff1lqq3biEyjIe1/zuuoZG9GPCW9j6zbJyxlJLpOTKPOxAf21yc 9PHmrhKITHQ== X-Google-Smtp-Source: AGHT+IFGiccbhZqyc+tej4qTENJjbBWjiTUYYL3DhoSnUTyHRDLAmgTi3lUKyo/9akatrkTDDTbHag== X-Received: by 2002:a05:6214:21ae:b0:6e4:3eb1:2bdb with SMTP id 6a1803df08f44-6e46edb4c2emr21334016d6.43.1739326311434; Tue, 11 Feb 2025 18:11:51 -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-6e44a9a524esm58256126d6.5.2025.02.11.18.11.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 18:11:50 -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 v2 7/7] ipv6: initialize inet socket cookies with sockcm_init Date: Tue, 11 Feb 2025 21:09:53 -0500 Message-ID: <20250212021142.1497449-8-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250212021142.1497449-1-willemdebruijn.kernel@gmail.com> References: <20250212021142.1497449-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 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) {