public inbox for patches@lists.linux.dev
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Kuniyuki Iwashima <kuniyu@amazon.com>,
	Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH 5.15 106/144] tcp/udp: Make early_demux back namespacified.
Date: Tue,  8 Nov 2022 14:39:43 +0100	[thread overview]
Message-ID: <20221108133349.787848593@linuxfoundation.org> (raw)
In-Reply-To: <20221108133345.346704162@linuxfoundation.org>

From: Kuniyuki Iwashima <kuniyu@amazon.com>

commit 11052589cf5c0bab3b4884d423d5f60c38fcf25d upstream.

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: Greg Kroah-Hartman <gregkh@linuxfoundation.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(-)

--- 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. */
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -921,7 +921,7 @@ extern const struct inet_connection_sock
 
 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
 
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -173,7 +173,7 @@ INDIRECT_CALLABLE_DECLARE(int udp4_gro_c
 INDIRECT_CALLABLE_DECLARE(struct sk_buff *udp6_gro_receive(struct list_head *,
 							   struct sk_buff *));
 INDIRECT_CALLABLE_DECLARE(int udp6_gro_complete(struct sk_buff *, int));
-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_gro_receive(struct list_head *head, struct sk_buff *skb,
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1728,24 +1728,14 @@ static const struct net_protocol igmp_pr
 };
 #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,
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -310,14 +310,13 @@ static bool ip_can_use_hint(const struct
 	       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;
 
@@ -330,21 +329,29 @@ static int ip_rcv_finish_core(struct net
 			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;
 		}
 	}
 
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -363,61 +363,6 @@ bad_key:
 	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)
@@ -720,14 +665,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",
--- 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);
 }
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1854,7 +1854,7 @@ do_time_wait:
 	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;
@@ -2209,12 +2209,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,
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -1046,7 +1046,7 @@ static struct sock *__udp6_lib_demux_loo
 	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;
@@ -1659,12 +1659,7 @@ int udpv6_getsockopt(struct sock *sk, in
 	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,



  parent reply	other threads:[~2022-11-08 14:05 UTC|newest]

Thread overview: 154+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-08 13:37 [PATCH 5.15 000/144] 5.15.78-rc1 review Greg Kroah-Hartman
2022-11-08 13:37 ` [PATCH 5.15 001/144] scsi: lpfc: Adjust bytes received vales during cmf timer interval Greg Kroah-Hartman
2022-11-08 13:37 ` [PATCH 5.15 002/144] scsi: lpfc: Adjust CMF total bytes and rxmonitor Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 003/144] scsi: lpfc: Rework MIB Rx Monitor debug info logic Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 004/144] serial: ar933x: Deassert Transmit Enable on ->rs485_config() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 005/144] KVM: x86: Trace re-injected exceptions Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 006/144] KVM: x86: Treat #DBs from the emulator as fault-like (code and DR7.GD=1) Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 007/144] drm/amd/display: explicitly disable psr_feature_enable appropriately Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 008/144] mm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 009/144] HID: playstation: add initial DualSense Edge controller support Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 010/144] KVM: x86: Protect the unused bits in MSR exiting flags Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 011/144] KVM: x86: Copy filter arg outside kvm_vm_ioctl_set_msr_filter() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 012/144] KVM: x86: Add compat handler for KVM_X86_SET_MSR_FILTER Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 013/144] RDMA/cma: Use output interface for net_dev check Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 014/144] IB/hfi1: Correctly move list in sc_disable() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 015/144] RDMA/hns: Remove magic number Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 016/144] RDMA/hns: Use hr_reg_xxx() instead of remaining roce_set_xxx() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 017/144] RDMA/hns: Disable local invalidate operation Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 018/144] NFSv4: Fix a potential state reclaim deadlock Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 019/144] NFSv4.1: Handle RECLAIM_COMPLETE trunking errors Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 020/144] NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 021/144] SUNRPC: Fix null-ptr-deref when xps sysfs alloc failed Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 022/144] NFSv4.2: Fixup CLONE dest file size for zero-length count Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 023/144] nfs4: Fix kmemleak when allocate slot failed Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 024/144] net: dsa: Fix possible memory leaks in dsa_loop_init() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 025/144] RDMA/core: Fix null-ptr-deref in ib_core_cleanup() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 026/144] RDMA/qedr: clean up work queue on failure in qedr_alloc_resources() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 027/144] net: dsa: fall back to default tagger if we cant load the one from DT Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 028/144] nfc: fdp: Fix potential memory leak in fdp_nci_send() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 029/144] nfc: nxp-nci: Fix potential memory leak in nxp_nci_send() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 030/144] nfc: s3fwrn5: Fix potential memory leak in s3fwrn5_nci_send() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 031/144] nfc: nfcmrvl: Fix potential memory leak in nfcmrvl_i2c_nci_send() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 032/144] net: fec: fix improper use of NETDEV_TX_BUSY Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 033/144] ata: pata_legacy: fix pdc20230_set_piomode() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 034/144] net: sched: Fix use after free in red_enqueue() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 035/144] net: tun: fix bugs for oversize packet when napi frags enabled Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 036/144] netfilter: nf_tables: netlink notifier might race to release objects Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 037/144] netfilter: nf_tables: release flow rule object from commit path Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 038/144] ipvs: use explicitly signed chars Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 039/144] ipvs: fix WARNING in __ip_vs_cleanup_batch() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 040/144] ipvs: fix WARNING in ip_vs_app_net_cleanup() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 041/144] rose: Fix NULL pointer dereference in rose_send_frame() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 042/144] mISDN: fix possible memory leak in mISDN_register_device() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 043/144] isdn: mISDN: netjet: fix wrong check of device registration Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 044/144] btrfs: fix inode list leak during backref walking at resolve_indirect_refs() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 045/144] btrfs: fix inode list leak during backref walking at find_parent_nodes() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 046/144] btrfs: fix ulist leaks in error paths of qgroup self tests Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 047/144] netfilter: ipset: enforce documented limit to prevent allocating huge memory Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 048/144] Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 049/144] Bluetooth: virtio_bt: Use skb_put to set length Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 050/144] Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 051/144] Bluetooth: L2CAP: Fix memory leak in vhci_write Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 052/144] net: mdio: fix undefined behavior in bit shift for __mdiobus_register Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 053/144] ibmvnic: Free rwi on reset success Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 054/144] stmmac: dwmac-loongson: fix invalid mdio_node Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 055/144] net/smc: Fix possible leaked pernet namespace in smc_init() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 056/144] net, neigh: Fix null-ptr-deref in neigh_table_clear() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 057/144] ipv6: fix WARNING in ip6_route_net_exit_late() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 058/144] vsock: fix possible infinite sleep in vsock_connectible_wait_data() Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 059/144] drm/msm/hdmi: Remove spurious IRQF_ONESHOT flag Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 060/144] drm/msm/hdmi: fix IRQ lifetime Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 061/144] video/fbdev/stifb: Implement the stifb_fillrect() function Greg Kroah-Hartman
2022-11-08 13:38 ` [PATCH 5.15 062/144] fbdev: stifb: Fall back to cfb_fillrect() on 32-bit HCRX cards Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 063/144] mtd: parsers: bcm47xxpart: print correct offset on read error Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 064/144] mtd: parsers: bcm47xxpart: Fix halfblock reads Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 065/144] s390/uaccess: add missing EX_TABLE entries to __clear_user() Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 066/144] s390/boot: add secure boot trailer Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 067/144] s390/cio: derive cdev information only for IO-subchannels Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 068/144] s390/cio: fix out-of-bounds access on cio_ignore free Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 069/144] media: rkisp1: Dont pass the quantization to rkisp1_csm_config() Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 070/144] media: rkisp1: Initialize color space on resizer sink and source pads Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 071/144] media: rkisp1: Use correct macro for gradient registers Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 072/144] media: rkisp1: Zero v4l2_subdev_format fields in when validating links Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 073/144] media: s5p_cec: limit msg.len to CEC_MAX_MSG_SIZE Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 074/144] media: cros-ec-cec: " Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 075/144] media: dvb-frontends/drxk: initialize err to 0 Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 076/144] media: meson: vdec: fix possible refcount leak in vdec_probe() Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 077/144] media: v4l: subdev: Fail graciously when getting try data for NULL state Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 078/144] ACPI: APEI: Fix integer overflow in ghes_estatus_pool_init() Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 079/144] scsi: core: Restrict legal sdev_state transitions via sysfs Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 080/144] HID: saitek: add madcatz variant of MMO7 mouse device ID Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 081/144] drm/amdgpu: set vm_update_mode=0 as default for Sienna Cichlid in SRIOV case Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 082/144] i2c: xiic: Add platform module alias Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 083/144] efi/tpm: Pass correct address to memblock_reserve Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 084/144] clk: qcom: Update the force mem core bit for GPU clocks Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 085/144] ARM: dts: imx6qdl-gw59{10,13}: fix user pushbutton GPIO offset Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 086/144] arm64: dts: imx8: correct clock order Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 087/144] arm64: dts: lx2160a: specify clock frequencies for the MDIO controllers Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 088/144] arm64: dts: ls1088a: " Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 089/144] arm64: dts: ls208xa: " Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 090/144] block: Fix possible memory leak for rq_wb on add_disk failure Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 091/144] firmware: arm_scmi: Suppress the drivers bind attributes Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 092/144] firmware: arm_scmi: Make Rx chan_setup fail on memory errors Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 093/144] firmware: arm_scmi: Fix devres allocation device in virtio transport Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 094/144] arm64: dts: juno: Add thermal critical trip points Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 095/144] i2c: piix4: Fix adapter not be removed in piix4_remove() Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 096/144] Bluetooth: L2CAP: Fix accepting connection request for invalid SPSM Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 097/144] Bluetooth: L2CAP: Fix attempting to access uninitialized memory Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 098/144] block, bfq: protect bfqd->queued by bfqd->lock Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 099/144] af_unix: Fix memory leaks of the whole sk due to OOB skb Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 100/144] fscrypt: stop using keyrings subsystem for fscrypt_master_key Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 101/144] fscrypt: fix keyring memory leak on mount failure Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 102/144] btrfs: fix lost file sync on direct IO write with nowait and dsync iocb Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 103/144] btrfs: fix tree mod log mishandling of reallocated nodes Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 104/144] btrfs: fix type of parameter generation in btrfs_get_dentry Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 105/144] ftrace: Fix use-after-free for dynamic ftrace_ops Greg Kroah-Hartman
2022-11-08 13:39 ` Greg Kroah-Hartman [this message]
2022-11-08 13:39 ` [PATCH 5.15 107/144] tracing: kprobe: Fix memory leak in test_gen_kprobe/kretprobe_cmd() Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 108/144] kprobe: reverse kp->flags when arm_kprobe failed Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 109/144] ring-buffer: Check for NULL cpu_buffer in ring_buffer_wake_waiters() Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 110/144] tools/nolibc/string: Fix memcmp() implementation Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 111/144] tracing/histogram: Update document for KEYS_MAX size Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 112/144] capabilities: fix potential memleak on error path from vfs_getxattr_alloc() Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 113/144] fuse: add file_modified() to fallocate Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 114/144] efi: random: reduce seed size to 32 bytes Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 115/144] efi: random: Use ACPI reclaim memory for random seed Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 116/144] arm64: entry: avoid kprobe recursion Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 117/144] perf/x86/intel: Fix pebs event constraints for ICL Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 118/144] perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[] Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 119/144] perf/x86/intel: Fix pebs event constraints for SPR Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 120/144] parisc: Make 8250_gsc driver dependend on CONFIG_PARISC Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 121/144] parisc: Export iosapic_serial_irq() symbol for serial port driver Greg Kroah-Hartman
2022-11-08 13:39 ` [PATCH 5.15 122/144] parisc: Avoid printing the hardware path twice Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 123/144] ext4: fix warning in ext4_da_release_space Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 124/144] ext4: fix BUG_ON() when directory entry has invalid rec_len Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 125/144] x86/syscall: Include asm/ptrace.h in syscall_wrapper header Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 126/144] KVM: x86: Mask off reserved bits in CPUID.80000006H Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 127/144] KVM: x86: Mask off reserved bits in CPUID.8000001AH Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 128/144] KVM: x86: Mask off reserved bits in CPUID.80000008H Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 129/144] KVM: x86: Mask off reserved bits in CPUID.80000001H Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 130/144] KVM: x86: Mask off reserved bits in CPUID.8000001FH Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 131/144] KVM: VMX: fully disable SGX if SECONDARY_EXEC_ENCLS_EXITING unavailable Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 132/144] KVM: arm64: Fix bad dereference on MTE-enabled systems Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 133/144] KVM: x86: emulator: em_sysexit should update ctxt->mode Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 134/144] KVM: x86: emulator: introduce emulator_recalc_and_set_mode Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 135/144] KVM: x86: emulator: update the emulation mode after rsm Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 136/144] KVM: x86: emulator: update the emulation mode after CR0 write Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 137/144] tee: Fix tee_shm_register() for kernel TEE drivers Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 138/144] ext4,f2fs: fix readahead of verity data Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 139/144] cifs: fix regression in very old smb1 mounts Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 140/144] drm/rockchip: dsi: Clean up usage_mode when failing to attach Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 141/144] drm/rockchip: dsi: Force synchronous probe Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 142/144] drm/i915/sdvo: Filter out invalid outputs more sensibly Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 143/144] drm/i915/sdvo: Setup DDC fully before output init Greg Kroah-Hartman
2022-11-08 13:40 ` [PATCH 5.15 144/144] wifi: brcmfmac: Fix potential buffer overflow in brcmf_fweh_event_worker() Greg Kroah-Hartman
2022-11-08 19:52 ` [PATCH 5.15 000/144] 5.15.78-rc1 review Florian Fainelli
2022-11-08 21:32 ` Slade Watkins
2022-11-08 23:16 ` Allen Pais
2022-11-09  2:54 ` Guenter Roeck
2022-11-09  4:07 ` Bagas Sanjaya
2022-11-09  9:03 ` Ron Economos
2022-11-09 11:18 ` Naresh Kamboju
2022-11-10  1:50 ` Shuah Khan
2022-11-10 11:01 ` Sudip Mukherjee

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=20221108133349.787848593@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=kuba@kernel.org \
    --cc=kuniyu@amazon.com \
    --cc=patches@lists.linux.dev \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox