All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Kuniyuki Iwashima <kuniyu@amazon.com>,
	Jakub Kicinski <kuba@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.18 052/158] tcp/udp: Make early_demux back namespacified.
Date: Wed, 27 Jul 2022 18:11:56 +0200	[thread overview]
Message-ID: <20220727161023.607020784@linuxfoundation.org> (raw)
In-Reply-To: <20220727161021.428340041@linuxfoundation.org>

From: Kuniyuki Iwashima <kuniyu@amazon.com>

[ Upstream commit 11052589cf5c0bab3b4884d423d5f60c38fcf25d ]

Commit e21145a9871a ("ipv4: namespacify ip_early_demux sysctl knob") made
it possible to enable/disable early_demux on a per-netns basis.  Then, we
introduced two knobs, tcp_early_demux and udp_early_demux, to switch it for
TCP/UDP in commit dddb64bcb346 ("net: Add sysctl to toggle early demux for
tcp and udp").  However, the .proc_handler() was wrong and actually
disabled us from changing the behaviour in each netns.

We can execute early_demux if net.ipv4.ip_early_demux is on and each proto
.early_demux() handler is not NULL.  When we toggle (tcp|udp)_early_demux,
the change itself is saved in each netns variable, but the .early_demux()
handler is a global variable, so the handler is switched based on the
init_net's sysctl variable.  Thus, netns (tcp|udp)_early_demux knobs have
nothing to do with the logic.  Whether we CAN execute proto .early_demux()
is always decided by init_net's sysctl knob, and whether we DO it or not is
by each netns ip_early_demux knob.

This patch namespacifies (tcp|udp)_early_demux again.  For now, the users
of the .early_demux() handler are TCP and UDP only, and they are called
directly to avoid retpoline.  So, we can remove the .early_demux() handler
from inet6?_protos and need not dereference them in ip6?_rcv_finish_core().
If another proto needs .early_demux(), we can restore it at that time.

Fixes: dddb64bcb346 ("net: Add sysctl to toggle early demux for tcp and udp")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/20220713175207.7727-1-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/net/protocol.h     |  4 ---
 include/net/tcp.h          |  2 +-
 include/net/udp.h          |  2 +-
 net/ipv4/af_inet.c         | 14 ++-------
 net/ipv4/ip_input.c        | 37 ++++++++++++++----------
 net/ipv4/sysctl_net_ipv4.c | 59 ++------------------------------------
 net/ipv6/ip6_input.c       | 23 ++++++++-------
 net/ipv6/tcp_ipv6.c        |  9 ++----
 net/ipv6/udp.c             |  9 ++----
 9 files changed, 45 insertions(+), 114 deletions(-)

diff --git a/include/net/protocol.h b/include/net/protocol.h
index f51c06ae365f..6aef8cb11cc8 100644
--- a/include/net/protocol.h
+++ b/include/net/protocol.h
@@ -35,8 +35,6 @@
 
 /* This is used to register protocols. */
 struct net_protocol {
-	int			(*early_demux)(struct sk_buff *skb);
-	int			(*early_demux_handler)(struct sk_buff *skb);
 	int			(*handler)(struct sk_buff *skb);
 
 	/* This returns an error if we weren't able to handle the error. */
@@ -52,8 +50,6 @@ struct net_protocol {
 
 #if IS_ENABLED(CONFIG_IPV6)
 struct inet6_protocol {
-	void	(*early_demux)(struct sk_buff *skb);
-	void    (*early_demux_handler)(struct sk_buff *skb);
 	int	(*handler)(struct sk_buff *skb);
 
 	/* This returns an error if we weren't able to handle the error. */
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 2d9a78b3beaa..113ce516ce42 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -932,7 +932,7 @@ extern const struct inet_connection_sock_af_ops ipv6_specific;
 
 INDIRECT_CALLABLE_DECLARE(void tcp_v6_send_check(struct sock *sk, struct sk_buff *skb));
 INDIRECT_CALLABLE_DECLARE(int tcp_v6_rcv(struct sk_buff *skb));
-INDIRECT_CALLABLE_DECLARE(void tcp_v6_early_demux(struct sk_buff *skb));
+void tcp_v6_early_demux(struct sk_buff *skb);
 
 #endif
 
diff --git a/include/net/udp.h b/include/net/udp.h
index f1c2a88c9005..07d0ceadcf6e 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -167,7 +167,7 @@ static inline void udp_csum_pull_header(struct sk_buff *skb)
 typedef struct sock *(*udp_lookup_t)(const struct sk_buff *skb, __be16 sport,
 				     __be16 dport);
 
-INDIRECT_CALLABLE_DECLARE(void udp_v6_early_demux(struct sk_buff *));
+void udp_v6_early_demux(struct sk_buff *skb);
 INDIRECT_CALLABLE_DECLARE(int udpv6_rcv(struct sk_buff *));
 
 struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 8c0a22a5b36c..f5d5911a8abd 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1711,24 +1711,14 @@ static const struct net_protocol igmp_protocol = {
 };
 #endif
 
-/* thinking of making this const? Don't.
- * early_demux can change based on sysctl.
- */
-static struct net_protocol tcp_protocol = {
-	.early_demux	=	tcp_v4_early_demux,
-	.early_demux_handler =  tcp_v4_early_demux,
+static const struct net_protocol tcp_protocol = {
 	.handler	=	tcp_v4_rcv,
 	.err_handler	=	tcp_v4_err,
 	.no_policy	=	1,
 	.icmp_strict_tag_validation = 1,
 };
 
-/* thinking of making this const? Don't.
- * early_demux can change based on sysctl.
- */
-static struct net_protocol udp_protocol = {
-	.early_demux =	udp_v4_early_demux,
-	.early_demux_handler =	udp_v4_early_demux,
+static const struct net_protocol udp_protocol = {
 	.handler =	udp_rcv,
 	.err_handler =	udp_err,
 	.no_policy =	1,
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index 95f7bb052784..f3fd6c398309 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -312,14 +312,13 @@ static bool ip_can_use_hint(const struct sk_buff *skb, const struct iphdr *iph,
 	       ip_hdr(hint)->tos == iph->tos;
 }
 
-INDIRECT_CALLABLE_DECLARE(int udp_v4_early_demux(struct sk_buff *));
-INDIRECT_CALLABLE_DECLARE(int tcp_v4_early_demux(struct sk_buff *));
+int tcp_v4_early_demux(struct sk_buff *skb);
+int udp_v4_early_demux(struct sk_buff *skb);
 static int ip_rcv_finish_core(struct net *net, struct sock *sk,
 			      struct sk_buff *skb, struct net_device *dev,
 			      const struct sk_buff *hint)
 {
 	const struct iphdr *iph = ip_hdr(skb);
-	int (*edemux)(struct sk_buff *skb);
 	int err, drop_reason;
 	struct rtable *rt;
 
@@ -332,21 +331,29 @@ static int ip_rcv_finish_core(struct net *net, struct sock *sk,
 			goto drop_error;
 	}
 
-	if (net->ipv4.sysctl_ip_early_demux &&
+	if (READ_ONCE(net->ipv4.sysctl_ip_early_demux) &&
 	    !skb_dst(skb) &&
 	    !skb->sk &&
 	    !ip_is_fragment(iph)) {
-		const struct net_protocol *ipprot;
-		int protocol = iph->protocol;
-
-		ipprot = rcu_dereference(inet_protos[protocol]);
-		if (ipprot && (edemux = READ_ONCE(ipprot->early_demux))) {
-			err = INDIRECT_CALL_2(edemux, tcp_v4_early_demux,
-					      udp_v4_early_demux, skb);
-			if (unlikely(err))
-				goto drop_error;
-			/* must reload iph, skb->head might have changed */
-			iph = ip_hdr(skb);
+		switch (iph->protocol) {
+		case IPPROTO_TCP:
+			if (READ_ONCE(net->ipv4.sysctl_tcp_early_demux)) {
+				tcp_v4_early_demux(skb);
+
+				/* must reload iph, skb->head might have changed */
+				iph = ip_hdr(skb);
+			}
+			break;
+		case IPPROTO_UDP:
+			if (READ_ONCE(net->ipv4.sysctl_udp_early_demux)) {
+				err = udp_v4_early_demux(skb);
+				if (unlikely(err))
+					goto drop_error;
+
+				/* must reload iph, skb->head might have changed */
+				iph = ip_hdr(skb);
+			}
+			break;
 		}
 	}
 
diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
index ffe0264a51b8..6b718688865e 100644
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -354,61 +354,6 @@ static int proc_tcp_fastopen_key(struct ctl_table *table, int write,
 	return ret;
 }
 
-static void proc_configure_early_demux(int enabled, int protocol)
-{
-	struct net_protocol *ipprot;
-#if IS_ENABLED(CONFIG_IPV6)
-	struct inet6_protocol *ip6prot;
-#endif
-
-	rcu_read_lock();
-
-	ipprot = rcu_dereference(inet_protos[protocol]);
-	if (ipprot)
-		ipprot->early_demux = enabled ? ipprot->early_demux_handler :
-						NULL;
-
-#if IS_ENABLED(CONFIG_IPV6)
-	ip6prot = rcu_dereference(inet6_protos[protocol]);
-	if (ip6prot)
-		ip6prot->early_demux = enabled ? ip6prot->early_demux_handler :
-						 NULL;
-#endif
-	rcu_read_unlock();
-}
-
-static int proc_tcp_early_demux(struct ctl_table *table, int write,
-				void *buffer, size_t *lenp, loff_t *ppos)
-{
-	int ret = 0;
-
-	ret = proc_dou8vec_minmax(table, write, buffer, lenp, ppos);
-
-	if (write && !ret) {
-		int enabled = init_net.ipv4.sysctl_tcp_early_demux;
-
-		proc_configure_early_demux(enabled, IPPROTO_TCP);
-	}
-
-	return ret;
-}
-
-static int proc_udp_early_demux(struct ctl_table *table, int write,
-				void *buffer, size_t *lenp, loff_t *ppos)
-{
-	int ret = 0;
-
-	ret = proc_dou8vec_minmax(table, write, buffer, lenp, ppos);
-
-	if (write && !ret) {
-		int enabled = init_net.ipv4.sysctl_udp_early_demux;
-
-		proc_configure_early_demux(enabled, IPPROTO_UDP);
-	}
-
-	return ret;
-}
-
 static int proc_tfo_blackhole_detect_timeout(struct ctl_table *table,
 					     int write, void *buffer,
 					     size_t *lenp, loff_t *ppos)
@@ -711,14 +656,14 @@ static struct ctl_table ipv4_net_table[] = {
 		.data           = &init_net.ipv4.sysctl_udp_early_demux,
 		.maxlen         = sizeof(u8),
 		.mode           = 0644,
-		.proc_handler   = proc_udp_early_demux
+		.proc_handler   = proc_dou8vec_minmax,
 	},
 	{
 		.procname       = "tcp_early_demux",
 		.data           = &init_net.ipv4.sysctl_tcp_early_demux,
 		.maxlen         = sizeof(u8),
 		.mode           = 0644,
-		.proc_handler   = proc_tcp_early_demux
+		.proc_handler   = proc_dou8vec_minmax,
 	},
 	{
 		.procname       = "nexthop_compat_mode",
diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c
index 5b5ea35635f9..caba03e551ef 100644
--- a/net/ipv6/ip6_input.c
+++ b/net/ipv6/ip6_input.c
@@ -45,20 +45,23 @@
 #include <net/inet_ecn.h>
 #include <net/dst_metadata.h>
 
-INDIRECT_CALLABLE_DECLARE(void tcp_v6_early_demux(struct sk_buff *));
 static void ip6_rcv_finish_core(struct net *net, struct sock *sk,
 				struct sk_buff *skb)
 {
-	void (*edemux)(struct sk_buff *skb);
-
-	if (net->ipv4.sysctl_ip_early_demux && !skb_dst(skb) && skb->sk == NULL) {
-		const struct inet6_protocol *ipprot;
-
-		ipprot = rcu_dereference(inet6_protos[ipv6_hdr(skb)->nexthdr]);
-		if (ipprot && (edemux = READ_ONCE(ipprot->early_demux)))
-			INDIRECT_CALL_2(edemux, tcp_v6_early_demux,
-					udp_v6_early_demux, skb);
+	if (READ_ONCE(net->ipv4.sysctl_ip_early_demux) &&
+	    !skb_dst(skb) && !skb->sk) {
+		switch (ipv6_hdr(skb)->nexthdr) {
+		case IPPROTO_TCP:
+			if (READ_ONCE(net->ipv4.sysctl_tcp_early_demux))
+				tcp_v6_early_demux(skb);
+			break;
+		case IPPROTO_UDP:
+			if (READ_ONCE(net->ipv4.sysctl_udp_early_demux))
+				udp_v6_early_demux(skb);
+			break;
+		}
 	}
+
 	if (!skb_valid_dst(skb))
 		ip6_route_input(skb);
 }
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index cbc5fff3d846..5185c11dc444 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1822,7 +1822,7 @@ INDIRECT_CALLABLE_SCOPE int tcp_v6_rcv(struct sk_buff *skb)
 	goto discard_it;
 }
 
-INDIRECT_CALLABLE_SCOPE void tcp_v6_early_demux(struct sk_buff *skb)
+void tcp_v6_early_demux(struct sk_buff *skb)
 {
 	const struct ipv6hdr *hdr;
 	const struct tcphdr *th;
@@ -2176,12 +2176,7 @@ struct proto tcpv6_prot = {
 };
 EXPORT_SYMBOL_GPL(tcpv6_prot);
 
-/* thinking of making this const? Don't.
- * early_demux can change based on sysctl.
- */
-static struct inet6_protocol tcpv6_protocol = {
-	.early_demux	=	tcp_v6_early_demux,
-	.early_demux_handler =  tcp_v6_early_demux,
+static const struct inet6_protocol tcpv6_protocol = {
 	.handler	=	tcp_v6_rcv,
 	.err_handler	=	tcp_v6_err,
 	.flags		=	INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index a535c3f2e4af..aea28bf701be 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -1052,7 +1052,7 @@ static struct sock *__udp6_lib_demux_lookup(struct net *net,
 	return NULL;
 }
 
-INDIRECT_CALLABLE_SCOPE void udp_v6_early_demux(struct sk_buff *skb)
+void udp_v6_early_demux(struct sk_buff *skb)
 {
 	struct net *net = dev_net(skb->dev);
 	const struct udphdr *uh;
@@ -1660,12 +1660,7 @@ int udpv6_getsockopt(struct sock *sk, int level, int optname,
 	return ipv6_getsockopt(sk, level, optname, optval, optlen);
 }
 
-/* thinking of making this const? Don't.
- * early_demux can change based on sysctl.
- */
-static struct inet6_protocol udpv6_protocol = {
-	.early_demux	=	udp_v6_early_demux,
-	.early_demux_handler =  udp_v6_early_demux,
+static const struct inet6_protocol udpv6_protocol = {
 	.handler	=	udpv6_rcv,
 	.err_handler	=	udpv6_err,
 	.flags		=	INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
-- 
2.35.1




  parent reply	other threads:[~2022-07-27 17:33 UTC|newest]

Thread overview: 169+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-27 16:11 [PATCH 5.18 000/158] 5.18.15-rc1 review Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 001/158] pinctrl: armada-37xx: use raw spinlocks for regmap to avoid invalid wait context Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 002/158] pinctrl: stm32: fix optional IRQ support to gpios Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 003/158] riscv: add as-options for modules with assembly compontents Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 004/158] mlxsw: spectrum_router: Fix IPv4 nexthop gateway indication Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 005/158] lockdown: Fix kexec lockdown bypass with ima policy Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 006/158] mmc: sdhci-omap: Fix a lockdep warning for PM runtime init Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 007/158] mtd: rawnand: gpmi: Set WAIT_FOR_READY timeout based on program/erase times Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 008/158] drm/ttm: fix locking in vmap/vunmap TTM GEM helpers Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 009/158] drm/amd/display: Fix new dmub notification enabling in DM Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 010/158] drm/scheduler: Dont kill jobs in interrupt context Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 011/158] net: usb: ax88179_178a needs FLAG_SEND_ZLP Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 012/158] bus: mhi: host: pci_generic: add Telit FN980 v1 hardware revision Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 013/158] bus: mhi: host: pci_generic: add Telit FN990 Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 014/158] PCI: hv: Fix multi-MSI to allow more than one MSI vector Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 015/158] PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 016/158] PCI: hv: Reuse existing IRTE allocation in compose_msi_msg() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 017/158] PCI: hv: Fix interrupt mapping for multi-MSI Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 018/158] r8152: fix a WOL issue Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 019/158] ip: Fix data-races around sysctl_ip_default_ttl Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 020/158] xfrm: xfrm_policy: fix a possible double xfrm_pols_put() in xfrm_bundle_lookup() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 021/158] power: supply: ab8500_fg: add missing destroy_workqueue in ab8500_fg_probe Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 022/158] power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 023/158] RDMA/irdma: Do not advertise 1GB page size for x722 Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 024/158] RDMA/irdma: Fix sleep from invalid context BUG Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 025/158] pinctrl: ralink: rename MT7628(an) functions to MT76X8 Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 026/158] pinctrl: ralink: rename pinctrl-rt2880 to pinctrl-ralink Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 027/158] pinctrl: ralink: Check for null return of devm_kcalloc Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 028/158] pinctrl: sunplus: Add check for kcalloc Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 029/158] perf/core: Fix data race between perf_event_set_output() and perf_mmap_close() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 030/158] e1000e: Enable GPT clock before sending message to CSME Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 031/158] Revert "e1000e: Fix possible HW unit hang after an s0ix exit" Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 032/158] igc: Reinstate IGC_REMOVED logic and implement it properly Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 033/158] ip: Fix data-races around sysctl_ip_no_pmtu_disc Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 034/158] ip: Fix data-races around sysctl_ip_fwd_use_pmtu Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 035/158] ip: Fix data-races around sysctl_ip_fwd_update_priority Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 036/158] ip: Fix data-races around sysctl_ip_nonlocal_bind Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 037/158] ip: Fix a data-race around sysctl_ip_autobind_reuse Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 038/158] ip: Fix a data-race around sysctl_fwmark_reflect Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 039/158] tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 040/158] tcp: sk->sk_bound_dev_if once in inet_request_bound_dev_if() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 041/158] tcp: Fix data-races around sysctl_tcp_l3mdev_accept Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 042/158] tcp: Fix data-races around sysctl_tcp_mtu_probing Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 043/158] tcp: Fix data-races around sysctl_tcp_base_mss Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 044/158] tcp: Fix data-races around sysctl_tcp_min_snd_mss Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 045/158] tcp: Fix a data-race around sysctl_tcp_mtu_probe_floor Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 046/158] tcp: Fix a data-race around sysctl_tcp_probe_threshold Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 047/158] tcp: Fix a data-race around sysctl_tcp_probe_interval Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 048/158] stmmac: dwmac-mediatek: fix clock issue Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 049/158] net: stmmac: fix pm runtime issue in stmmac_dvr_remove() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 050/158] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 051/158] net: dsa: microchip: ksz_common: Fix refcount leak bug Greg Kroah-Hartman
2022-07-27 16:11 ` Greg Kroah-Hartman [this message]
2022-07-27 16:11 ` [PATCH 5.18 053/158] i2c: mlxcpld: Fix register setting for 400KHz frequency Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 054/158] i2c: cadence: Change large transfer count reset logic to be unconditional Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 055/158] perf tests: Stop Convert perf time to TSC test opening events twice Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 056/158] perf tests: Fix Convert perf time to TSC test for hybrid Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 057/158] pinctrl: ocelot: Fix pincfg for lan966x Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 058/158] pinctrl: ocelot: Fix pincfg Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 059/158] net: stmmac: fix dma queue left shift overflow issue Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 060/158] net/tls: Fix race in TLS device down flow Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 061/158] net: prestera: acl: use proper mask for port selector Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 062/158] igmp: Fix data-races around sysctl_igmp_llm_reports Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 063/158] igmp: Fix a data-race around sysctl_igmp_max_memberships Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 064/158] igmp: Fix data-races around sysctl_igmp_max_msf Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 065/158] igmp: Fix data-races around sysctl_igmp_qrv Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 066/158] tcp: Fix data-races around keepalive sysctl knobs Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 067/158] tcp: Fix data-races around sysctl_tcp_syn(ack)?_retries Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 068/158] tcp: Fix data-races around sysctl_tcp_syncookies Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 069/158] tcp: Fix data-races around sysctl_tcp_migrate_req Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 070/158] tcp: Fix data-races around sysctl_tcp_reordering Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 071/158] tcp: Fix data-races around some timeout sysctl knobs Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 072/158] tcp: Fix a data-race around sysctl_tcp_notsent_lowat Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 073/158] tcp: Fix a data-race around sysctl_tcp_tw_reuse Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 074/158] tcp: Fix data-races around sysctl_max_syn_backlog Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 075/158] tcp: Fix data-races around sysctl_tcp_fastopen Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 076/158] tcp: Fix data-races around sysctl_tcp_fastopen_blackhole_timeout Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 077/158] iavf: Fix VLAN_V2 addition/rejection Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 078/158] iavf: Disallow changing rx/tx-frames and rx/tx-frames-irq Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 079/158] iavf: Fix handling of dummy receive descriptors Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 080/158] iavf: Fix missing state logs Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 081/158] ACPI: CPPC: Dont require flexible address space if X86_FEATURE_CPPC is supported Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 082/158] pinctrl: armada-37xx: Reuse GPIO fwnode in armada_37xx_irqchip_register() Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 083/158] pinctrl: armada-37xx: make irq_lock a raw spinlock to avoid invalid wait context Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 084/158] net: lan966x: Fix taking rtnl_lock while holding spin_lock Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 085/158] net: lan966x: Fix usage of lan966x->mac_lock when entry is added Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 086/158] net: lan966x: Fix usage of lan966x->mac_lock when entry is removed Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 087/158] net: lan966x: Fix usage of lan966x->mac_lock inside lan966x_mac_irq_handler Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 088/158] net: lan966x: Fix usage of lan966x->mac_lock when used by FDB Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 089/158] i40e: Fix erroneous adapter reinitialization during recovery process Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 090/158] ixgbe: Add locking to prevent panic when setting sriov_numvfs to zero Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 091/158] net: dsa: fix dsa_port_vlan_filtering when global Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 092/158] net: dsa: move reset of VLAN filtering to dsa_port_switchdev_unsync_attrs Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 093/158] net: dsa: fix NULL pointer dereference in dsa_port_reset_vlan_filtering Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 094/158] net: stmmac: remove redunctant disable xPCS EEE call Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 095/158] gpio: pca953x: only use single read/write for No AI mode Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 096/158] gpio: pca953x: use the correct range when do regmap sync Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 097/158] gpio: pca953x: use the correct register address when regcache sync during init Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 098/158] be2net: Fix buffer overflow in be_get_module_eeprom Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 099/158] net: dsa: sja1105: silent spi_device_id warnings Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 100/158] net: dsa: vitesse-vsc73xx: " Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 101/158] amt: use workqueue for gateway side message handling Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 102/158] amt: remove unnecessary locks Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 103/158] amt: use READ_ONCE() in amt module Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 104/158] amt: add missing regeneration nonce logic in request logic Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 105/158] amt: drop unexpected advertisement message Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 106/158] amt: drop unexpected query message Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 107/158] amt: drop unexpected multicast data Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 108/158] amt: do not use amt->nr_tunnels outside of lock Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 109/158] drm/panel-edp: Fix variable typo when saving hpd absent delay from DT Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 110/158] drm/imx/dcss: Add missing of_node_put() in fail path Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 111/158] can: rcar_canfd: Add missing of_node_put() in rcar_canfd_probe() Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 112/158] ipv4: Fix a data-race around sysctl_fib_multipath_use_neigh Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 113/158] ipv4: Fix data-races around sysctl_fib_multipath_hash_policy Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 114/158] ipv4: Fix data-races around sysctl_fib_multipath_hash_fields Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 115/158] ip: Fix data-races around sysctl_ip_prot_sock Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 116/158] udp: Fix a data-race around sysctl_udp_l3mdev_accept Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 117/158] tcp: Fix data-races around sysctl knobs related to SYN option Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 118/158] tcp: Fix a data-race around sysctl_tcp_early_retrans Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 119/158] tcp: Fix data-races around sysctl_tcp_recovery Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 120/158] tcp: Fix a data-race around sysctl_tcp_thin_linear_timeouts Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 121/158] tcp: Fix data-races around sysctl_tcp_slow_start_after_idle Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 122/158] tcp: Fix a data-race around sysctl_tcp_retrans_collapse Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 123/158] tcp: Fix a data-race around sysctl_tcp_stdurg Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 124/158] tcp: Fix a data-race around sysctl_tcp_rfc1337 Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 125/158] tcp: Fix a data-race around sysctl_tcp_abort_on_overflow Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 126/158] tcp: Fix data-races around sysctl_tcp_max_reordering Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 127/158] net/sched: cls_api: Fix flow action initialization Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 128/158] selftests: gpio: fix include path to kernel headers for out of tree builds Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 129/158] gpio: gpio-xilinx: Fix integer overflow Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 130/158] KVM: selftests: Fix target thread to be migrated in rseq_test Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 131/158] spi: bcm2835: bcm2835_spi_handle_err(): fix NULL pointer deref for non DMA transfers Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 132/158] KVM: Dont null dereference ops->destroy Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 133/158] mm/mempolicy: fix uninit-value in mpol_rebind_policy() Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 134/158] bpf: Make sure mac_header was set before using it Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 135/158] sched/deadline: Fix BUG_ON condition for deboosted tasks Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 136/158] perf/x86/intel/lbr: Fix unchecked MSR access error on HSW Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 137/158] x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 138/158] clk: lan966x: Fix the lan966x clock gate register address Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 139/158] dlm: fix pending remove if msg allocation fails Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 140/158] crypto: qat - set to zero DH parameters before free Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 141/158] crypto: qat - use pre-allocated buffers in datapath Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 142/158] crypto: qat - refactor submission logic Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 143/158] crypto: qat - add backlog mechanism Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 144/158] crypto: qat - fix memory leak in RSA Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 145/158] crypto: qat - remove dma_free_coherent() for RSA Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 146/158] crypto: qat - remove dma_free_coherent() for DH Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 147/158] crypto: qat - add param check for RSA Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 148/158] crypto: qat - add param check for DH Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 149/158] crypto: qat - re-enable registration of algorithms Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 150/158] exfat: fix referencing wrong parent directory information after renaming Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 151/158] exfat: use updated exfat_chain directly during renaming Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 152/158] x86/amd: Use IBPB for firmware calls Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 153/158] x86/alternative: Report missing return thunk details Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 154/158] watchqueue: make sure to serialize wqueue->defunct properly Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 155/158] ASoC: SOF: pm: add explicit behavior for ACPI S1 and S2 Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 156/158] ASoC: SOF: pm: add definitions for S4 and S5 states Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 157/158] ASoC: SOF: Intel: disable IMR boot when resuming from ACPI " Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 158/158] watch-queue: remove spurious double semicolon Greg Kroah-Hartman
2022-07-28  0:48 ` [PATCH 5.18 000/158] 5.18.15-rc1 review Florian Fainelli
2022-07-28  5:35 ` Naresh Kamboju
2022-07-28  6:17 ` Ron Economos
2022-07-28  8:51 ` Bagas Sanjaya
2022-07-28 10:04 ` Jiri Slaby
2022-07-28 14:32 ` Jon Hunter
2022-07-28 14:37 ` Shuah Khan
2022-07-28 16:01 ` Sudip Mukherjee (Codethink)
2022-07-28 22:59 ` Guenter Roeck
2022-07-29 15:29 ` Justin Forbes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220727161023.607020784@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=kuba@kernel.org \
    --cc=kuniyu@amazon.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.