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,
	syzbot <syzbot+355f8edb2ff45d5f95fa@syzkaller.appspotmail.com>,
	syzbot <syzbot+0f1827363a305f74996f@syzkaller.appspotmail.com>,
	Kirill Tkhai <ktkhai@virtuozzo.com>,
	Oliver Hartkopp <socketcan@hartkopp.net>,
	Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
	Marc Kleine-Budde <mkl@pengutronix.de>
Subject: [PATCH 5.12 118/178] can: bcm/raw/isotp: use per module netdevice notifier
Date: Mon, 21 Jun 2021 18:15:32 +0200	[thread overview]
Message-ID: <20210621154926.795631447@linuxfoundation.org> (raw)
In-Reply-To: <20210621154921.212599475@linuxfoundation.org>

From: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>

commit 8d0caedb759683041d9db82069937525999ada53 upstream.

syzbot is reporting hung task at register_netdevice_notifier() [1] and
unregister_netdevice_notifier() [2], for cleanup_net() might perform
time consuming operations while CAN driver's raw/bcm/isotp modules are
calling {register,unregister}_netdevice_notifier() on each socket.

Change raw/bcm/isotp modules to call register_netdevice_notifier() from
module's __init function and call unregister_netdevice_notifier() from
module's __exit function, as with gw/j1939 modules are doing.

Link: https://syzkaller.appspot.com/bug?id=391b9498827788b3cc6830226d4ff5be87107c30 [1]
Link: https://syzkaller.appspot.com/bug?id=1724d278c83ca6e6df100a2e320c10d991cf2bce [2]
Link: https://lore.kernel.org/r/54a5f451-05ed-f977-8534-79e7aa2bcc8f@i-love.sakura.ne.jp
Cc: linux-stable <stable@vger.kernel.org>
Reported-by: syzbot <syzbot+355f8edb2ff45d5f95fa@syzkaller.appspotmail.com>
Reported-by: syzbot <syzbot+0f1827363a305f74996f@syzkaller.appspotmail.com>
Reviewed-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Tested-by: syzbot <syzbot+355f8edb2ff45d5f95fa@syzkaller.appspotmail.com>
Tested-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/can/bcm.c   |   59 +++++++++++++++++++++++++++++++++++++++++------------
 net/can/isotp.c |   61 +++++++++++++++++++++++++++++++++++++++++++------------
 net/can/raw.c   |   62 +++++++++++++++++++++++++++++++++++++++++++-------------
 3 files changed, 142 insertions(+), 40 deletions(-)

--- a/net/can/bcm.c
+++ b/net/can/bcm.c
@@ -125,7 +125,7 @@ struct bcm_sock {
 	struct sock sk;
 	int bound;
 	int ifindex;
-	struct notifier_block notifier;
+	struct list_head notifier;
 	struct list_head rx_ops;
 	struct list_head tx_ops;
 	unsigned long dropped_usr_msgs;
@@ -133,6 +133,10 @@ struct bcm_sock {
 	char procname [32]; /* inode number in decimal with \0 */
 };
 
+static LIST_HEAD(bcm_notifier_list);
+static DEFINE_SPINLOCK(bcm_notifier_lock);
+static struct bcm_sock *bcm_busy_notifier;
+
 static inline struct bcm_sock *bcm_sk(const struct sock *sk)
 {
 	return (struct bcm_sock *)sk;
@@ -1381,20 +1385,15 @@ static int bcm_sendmsg(struct socket *so
 /*
  * notification handler for netdevice status changes
  */
-static int bcm_notifier(struct notifier_block *nb, unsigned long msg,
-			void *ptr)
+static void bcm_notify(struct bcm_sock *bo, unsigned long msg,
+		       struct net_device *dev)
 {
-	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
-	struct bcm_sock *bo = container_of(nb, struct bcm_sock, notifier);
 	struct sock *sk = &bo->sk;
 	struct bcm_op *op;
 	int notify_enodev = 0;
 
 	if (!net_eq(dev_net(dev), sock_net(sk)))
-		return NOTIFY_DONE;
-
-	if (dev->type != ARPHRD_CAN)
-		return NOTIFY_DONE;
+		return;
 
 	switch (msg) {
 
@@ -1429,7 +1428,28 @@ static int bcm_notifier(struct notifier_
 				sk->sk_error_report(sk);
 		}
 	}
+}
 
+static int bcm_notifier(struct notifier_block *nb, unsigned long msg,
+			void *ptr)
+{
+	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
+
+	if (dev->type != ARPHRD_CAN)
+		return NOTIFY_DONE;
+	if (msg != NETDEV_UNREGISTER && msg != NETDEV_DOWN)
+		return NOTIFY_DONE;
+	if (unlikely(bcm_busy_notifier)) /* Check for reentrant bug. */
+		return NOTIFY_DONE;
+
+	spin_lock(&bcm_notifier_lock);
+	list_for_each_entry(bcm_busy_notifier, &bcm_notifier_list, notifier) {
+		spin_unlock(&bcm_notifier_lock);
+		bcm_notify(bcm_busy_notifier, msg, dev);
+		spin_lock(&bcm_notifier_lock);
+	}
+	bcm_busy_notifier = NULL;
+	spin_unlock(&bcm_notifier_lock);
 	return NOTIFY_DONE;
 }
 
@@ -1449,9 +1469,9 @@ static int bcm_init(struct sock *sk)
 	INIT_LIST_HEAD(&bo->rx_ops);
 
 	/* set notifier */
-	bo->notifier.notifier_call = bcm_notifier;
-
-	register_netdevice_notifier(&bo->notifier);
+	spin_lock(&bcm_notifier_lock);
+	list_add_tail(&bo->notifier, &bcm_notifier_list);
+	spin_unlock(&bcm_notifier_lock);
 
 	return 0;
 }
@@ -1474,7 +1494,14 @@ static int bcm_release(struct socket *so
 
 	/* remove bcm_ops, timer, rx_unregister(), etc. */
 
-	unregister_netdevice_notifier(&bo->notifier);
+	spin_lock(&bcm_notifier_lock);
+	while (bcm_busy_notifier == bo) {
+		spin_unlock(&bcm_notifier_lock);
+		schedule_timeout_uninterruptible(1);
+		spin_lock(&bcm_notifier_lock);
+	}
+	list_del(&bo->notifier);
+	spin_unlock(&bcm_notifier_lock);
 
 	lock_sock(sk);
 
@@ -1695,6 +1722,10 @@ static struct pernet_operations canbcm_p
 	.exit = canbcm_pernet_exit,
 };
 
+static struct notifier_block canbcm_notifier = {
+	.notifier_call = bcm_notifier
+};
+
 static int __init bcm_module_init(void)
 {
 	int err;
@@ -1708,12 +1739,14 @@ static int __init bcm_module_init(void)
 	}
 
 	register_pernet_subsys(&canbcm_pernet_ops);
+	register_netdevice_notifier(&canbcm_notifier);
 	return 0;
 }
 
 static void __exit bcm_module_exit(void)
 {
 	can_proto_unregister(&bcm_can_proto);
+	unregister_netdevice_notifier(&canbcm_notifier);
 	unregister_pernet_subsys(&canbcm_pernet_ops);
 }
 
--- a/net/can/isotp.c
+++ b/net/can/isotp.c
@@ -143,10 +143,14 @@ struct isotp_sock {
 	u32 force_tx_stmin;
 	u32 force_rx_stmin;
 	struct tpcon rx, tx;
-	struct notifier_block notifier;
+	struct list_head notifier;
 	wait_queue_head_t wait;
 };
 
+static LIST_HEAD(isotp_notifier_list);
+static DEFINE_SPINLOCK(isotp_notifier_lock);
+static struct isotp_sock *isotp_busy_notifier;
+
 static inline struct isotp_sock *isotp_sk(const struct sock *sk)
 {
 	return (struct isotp_sock *)sk;
@@ -1013,7 +1017,14 @@ static int isotp_release(struct socket *
 	/* wait for complete transmission of current pdu */
 	wait_event_interruptible(so->wait, so->tx.state == ISOTP_IDLE);
 
-	unregister_netdevice_notifier(&so->notifier);
+	spin_lock(&isotp_notifier_lock);
+	while (isotp_busy_notifier == so) {
+		spin_unlock(&isotp_notifier_lock);
+		schedule_timeout_uninterruptible(1);
+		spin_lock(&isotp_notifier_lock);
+	}
+	list_del(&so->notifier);
+	spin_unlock(&isotp_notifier_lock);
 
 	lock_sock(sk);
 
@@ -1317,21 +1328,16 @@ static int isotp_getsockopt(struct socke
 	return 0;
 }
 
-static int isotp_notifier(struct notifier_block *nb, unsigned long msg,
-			  void *ptr)
+static void isotp_notify(struct isotp_sock *so, unsigned long msg,
+			 struct net_device *dev)
 {
-	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
-	struct isotp_sock *so = container_of(nb, struct isotp_sock, notifier);
 	struct sock *sk = &so->sk;
 
 	if (!net_eq(dev_net(dev), sock_net(sk)))
-		return NOTIFY_DONE;
-
-	if (dev->type != ARPHRD_CAN)
-		return NOTIFY_DONE;
+		return;
 
 	if (so->ifindex != dev->ifindex)
-		return NOTIFY_DONE;
+		return;
 
 	switch (msg) {
 	case NETDEV_UNREGISTER:
@@ -1357,7 +1363,28 @@ static int isotp_notifier(struct notifie
 			sk->sk_error_report(sk);
 		break;
 	}
+}
 
+static int isotp_notifier(struct notifier_block *nb, unsigned long msg,
+			  void *ptr)
+{
+	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
+
+	if (dev->type != ARPHRD_CAN)
+		return NOTIFY_DONE;
+	if (msg != NETDEV_UNREGISTER && msg != NETDEV_DOWN)
+		return NOTIFY_DONE;
+	if (unlikely(isotp_busy_notifier)) /* Check for reentrant bug. */
+		return NOTIFY_DONE;
+
+	spin_lock(&isotp_notifier_lock);
+	list_for_each_entry(isotp_busy_notifier, &isotp_notifier_list, notifier) {
+		spin_unlock(&isotp_notifier_lock);
+		isotp_notify(isotp_busy_notifier, msg, dev);
+		spin_lock(&isotp_notifier_lock);
+	}
+	isotp_busy_notifier = NULL;
+	spin_unlock(&isotp_notifier_lock);
 	return NOTIFY_DONE;
 }
 
@@ -1394,8 +1421,9 @@ static int isotp_init(struct sock *sk)
 
 	init_waitqueue_head(&so->wait);
 
-	so->notifier.notifier_call = isotp_notifier;
-	register_netdevice_notifier(&so->notifier);
+	spin_lock(&isotp_notifier_lock);
+	list_add_tail(&so->notifier, &isotp_notifier_list);
+	spin_unlock(&isotp_notifier_lock);
 
 	return 0;
 }
@@ -1442,6 +1470,10 @@ static const struct can_proto isotp_can_
 	.prot = &isotp_proto,
 };
 
+static struct notifier_block canisotp_notifier = {
+	.notifier_call = isotp_notifier
+};
+
 static __init int isotp_module_init(void)
 {
 	int err;
@@ -1451,6 +1483,8 @@ static __init int isotp_module_init(void
 	err = can_proto_register(&isotp_can_proto);
 	if (err < 0)
 		pr_err("can: registration of isotp protocol failed\n");
+	else
+		register_netdevice_notifier(&canisotp_notifier);
 
 	return err;
 }
@@ -1458,6 +1492,7 @@ static __init int isotp_module_init(void
 static __exit void isotp_module_exit(void)
 {
 	can_proto_unregister(&isotp_can_proto);
+	unregister_netdevice_notifier(&canisotp_notifier);
 }
 
 module_init(isotp_module_init);
--- a/net/can/raw.c
+++ b/net/can/raw.c
@@ -83,7 +83,7 @@ struct raw_sock {
 	struct sock sk;
 	int bound;
 	int ifindex;
-	struct notifier_block notifier;
+	struct list_head notifier;
 	int loopback;
 	int recv_own_msgs;
 	int fd_frames;
@@ -95,6 +95,10 @@ struct raw_sock {
 	struct uniqframe __percpu *uniq;
 };
 
+static LIST_HEAD(raw_notifier_list);
+static DEFINE_SPINLOCK(raw_notifier_lock);
+static struct raw_sock *raw_busy_notifier;
+
 /* Return pointer to store the extra msg flags for raw_recvmsg().
  * We use the space of one unsigned int beyond the 'struct sockaddr_can'
  * in skb->cb.
@@ -263,21 +267,16 @@ static int raw_enable_allfilters(struct
 	return err;
 }
 
-static int raw_notifier(struct notifier_block *nb,
-			unsigned long msg, void *ptr)
+static void raw_notify(struct raw_sock *ro, unsigned long msg,
+		       struct net_device *dev)
 {
-	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
-	struct raw_sock *ro = container_of(nb, struct raw_sock, notifier);
 	struct sock *sk = &ro->sk;
 
 	if (!net_eq(dev_net(dev), sock_net(sk)))
-		return NOTIFY_DONE;
-
-	if (dev->type != ARPHRD_CAN)
-		return NOTIFY_DONE;
+		return;
 
 	if (ro->ifindex != dev->ifindex)
-		return NOTIFY_DONE;
+		return;
 
 	switch (msg) {
 	case NETDEV_UNREGISTER:
@@ -305,7 +304,28 @@ static int raw_notifier(struct notifier_
 			sk->sk_error_report(sk);
 		break;
 	}
+}
+
+static int raw_notifier(struct notifier_block *nb, unsigned long msg,
+			void *ptr)
+{
+	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
+
+	if (dev->type != ARPHRD_CAN)
+		return NOTIFY_DONE;
+	if (msg != NETDEV_UNREGISTER && msg != NETDEV_DOWN)
+		return NOTIFY_DONE;
+	if (unlikely(raw_busy_notifier)) /* Check for reentrant bug. */
+		return NOTIFY_DONE;
 
+	spin_lock(&raw_notifier_lock);
+	list_for_each_entry(raw_busy_notifier, &raw_notifier_list, notifier) {
+		spin_unlock(&raw_notifier_lock);
+		raw_notify(raw_busy_notifier, msg, dev);
+		spin_lock(&raw_notifier_lock);
+	}
+	raw_busy_notifier = NULL;
+	spin_unlock(&raw_notifier_lock);
 	return NOTIFY_DONE;
 }
 
@@ -334,9 +354,9 @@ static int raw_init(struct sock *sk)
 		return -ENOMEM;
 
 	/* set notifier */
-	ro->notifier.notifier_call = raw_notifier;
-
-	register_netdevice_notifier(&ro->notifier);
+	spin_lock(&raw_notifier_lock);
+	list_add_tail(&ro->notifier, &raw_notifier_list);
+	spin_unlock(&raw_notifier_lock);
 
 	return 0;
 }
@@ -351,7 +371,14 @@ static int raw_release(struct socket *so
 
 	ro = raw_sk(sk);
 
-	unregister_netdevice_notifier(&ro->notifier);
+	spin_lock(&raw_notifier_lock);
+	while (raw_busy_notifier == ro) {
+		spin_unlock(&raw_notifier_lock);
+		schedule_timeout_uninterruptible(1);
+		spin_lock(&raw_notifier_lock);
+	}
+	list_del(&ro->notifier);
+	spin_unlock(&raw_notifier_lock);
 
 	lock_sock(sk);
 
@@ -889,6 +916,10 @@ static const struct can_proto raw_can_pr
 	.prot       = &raw_proto,
 };
 
+static struct notifier_block canraw_notifier = {
+	.notifier_call = raw_notifier
+};
+
 static __init int raw_module_init(void)
 {
 	int err;
@@ -898,6 +929,8 @@ static __init int raw_module_init(void)
 	err = can_proto_register(&raw_can_proto);
 	if (err < 0)
 		pr_err("can: registration of raw protocol failed\n");
+	else
+		register_netdevice_notifier(&canraw_notifier);
 
 	return err;
 }
@@ -905,6 +938,7 @@ static __init int raw_module_init(void)
 static __exit void raw_module_exit(void)
 {
 	can_proto_unregister(&raw_can_proto);
+	unregister_netdevice_notifier(&canraw_notifier);
 }
 
 module_init(raw_module_init);



  parent reply	other threads:[~2021-06-21 16:48 UTC|newest]

Thread overview: 186+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-21 16:13 [PATCH 5.12 000/178] 5.12.13-rc1 review Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 001/178] dmaengine: idxd: add engine struct device missing bus type assignment Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 002/178] dmaengine: idxd: add missing dsa driver unregister Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 003/178] dmaengine: fsl-dpaa2-qdma: Fix error return code in two functions Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 004/178] dmaengine: xilinx: dpdma: initialize registers before request_irq Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 005/178] dmaengine: ALTERA_MSGDMA depends on HAS_IOMEM Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 006/178] dmaengine: QCOM_HIDMA_MGMT " Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 007/178] dmaengine: SF_PDMA " Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 008/178] dmaengine: stedma40: add missing iounmap() on error in d40_probe() Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 009/178] afs: Fix an IS_ERR() vs NULL check Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 010/178] mm/memory-failure: make sure wait for page writeback in memory_failure Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 011/178] kvm: LAPIC: Restore guard to prevent illegal APIC register access Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 012/178] fanotify: fix copy_event_to_user() fid error clean up Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 013/178] batman-adv: Avoid WARN_ON timing related checks Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 014/178] staging: rtl8723bs: fix monitor netdev register/unregister Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 015/178] mac80211: fix skb length check in ieee80211_scan_rx() Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 016/178] mlxsw: reg: Spectrum-3: Enforce lowest max-shaper burst size of 11 Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 017/178] mlxsw: core: Set thermal zone polling delay argument to real value at init Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 018/178] libbpf: Fixes incorrect rx_ring_setup_done Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 019/178] net: ipv4: fix memory leak in netlbl_cipsov4_add_std Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 020/178] vrf: fix maximum MTU Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 021/178] net: rds: fix memory leak in rds_recvmsg Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 022/178] net: dsa: felix: re-enable TX flow control in ocelot_port_flush() Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 023/178] net: ena: fix DMA mapping function issues in XDP Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 024/178] net: lantiq: disable interrupt before sheduling NAPI Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.12 025/178] netfilter: nf_tables: initialize set before expression setup Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 026/178] netfilter: nft_fib_ipv6: skip ipv6 packets from any to link-local Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 027/178] ice: add ndo_bpf callback for safe mode netdev ops Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 028/178] ice: parameterize functions responsible for Tx ring management Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 029/178] udp: fix race between close() and udp_abort() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 030/178] rtnetlink: Fix regression in bridge VLAN configuration Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 031/178] net/sched: act_ct: handle DNAT tuple collision Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 032/178] net/mlx5e: Fix use-after-free of encap entry in neigh update handler Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 033/178] net/mlx5e: Remove dependency in IPsec initialization flows Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 034/178] net/mlx5e: Fix page reclaim for dead peer hairpin Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 035/178] net/mlx5: Consider RoCE cap before init RDMA resources Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 036/178] net/mlx5: DR, Dont use SW steering when RoCE is not supported Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 037/178] Revert "net/mlx5: Arm only EQs with EQEs" Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 038/178] net/mlx5e: Block offload of outer header csum for UDP tunnels Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 039/178] net/mlx5e: Block offload of outer header csum for GRE tunnel Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 040/178] skbuff: fix incorrect msg_zerocopy copy notifications Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 041/178] netfilter: synproxy: Fix out of bounds when parsing TCP options Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 042/178] mptcp: " Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 043/178] sch_cake: Fix out of bounds when parsing TCP options and header Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 044/178] mptcp: try harder to borrow memory from subflow under pressure Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 045/178] mptcp: wake-up readers only for in sequence data Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 046/178] mptcp: do not warn on bad input from the network Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 047/178] selftests: mptcp: enable syncookie only in absence of reorders Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 048/178] mptcp: fix soft lookup in subflow_error_report() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 049/178] alx: Fix an error handling path in alx_probe() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 050/178] cxgb4: fix endianness when flashing boot image Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 051/178] cxgb4: fix sleep in atomic when flashing PHY firmware Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 052/178] cxgb4: halt chip before flashing PHY firmware image Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 053/178] net: stmmac: dwmac1000: Fix extended MAC address registers definition Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 054/178] net: make get_net_ns return error if NET_NS is disabled Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 055/178] net: qualcomm: rmnet: dont over-count statistics Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 056/178] ethtool: strset: fix message length calculation Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 057/178] qlcnic: Fix an error handling path in qlcnic_probe() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 058/178] netxen_nic: Fix an error handling path in netxen_nic_probe() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 059/178] cxgb4: fix wrong ethtool n-tuple rule lookup Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 060/178] ipv4: Fix device used for dst_alloc with local routes Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 061/178] net: qrtr: fix OOB Read in qrtr_endpoint_post Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 062/178] bpf: Fix leakage under speculation on mispredicted branches Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 063/178] net: mhi_net: Update the transmit handler prototype Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 064/178] ptp: improve max_adj check against unreasonable values Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 065/178] net: cdc_ncm: switch to eth%d interface naming Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 066/178] lantiq: net: fix duplicated skb in rx descriptor ring Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 067/178] net: usb: fix possible use-after-free in smsc75xx_bind Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 068/178] net: fec_ptp: fix issue caused by refactor the fec_devtype Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 069/178] net: ipv4: fix memory leak in ip_mc_add1_src Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 070/178] net/af_unix: fix a data-race in unix_dgram_sendmsg / unix_release_sock Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 071/178] net/mlx5: Fix error path for set HCA defaults Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 072/178] net/mlx5: Check that driver was probed prior attaching the device Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 073/178] net/mlx5: E-Switch, Read PF mac address Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 074/178] net/mlx5: E-Switch, Allow setting GUID for host PF vport Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 075/178] net/mlx5: SF_DEV, remove SF device on invalid state Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 076/178] net/mlx5: DR, Fix STEv1 incorrect L3 decapsulation padding Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 077/178] net/mlx5e: Dont create devices during unload flow Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 078/178] net/mlx5: Reset mkey index on creation Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 079/178] be2net: Fix an error handling path in be_probe() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 080/178] net: hamradio: fix memory leak in mkiss_close Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 081/178] net: cdc_eem: fix tx fixup skb leak Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 082/178] cxgb4: fix wrong shift Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 083/178] bnxt_en: Rediscover PHY capabilities after firmware reset Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 084/178] bnxt_en: Fix TQM fastpath ring backing store computation Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.12 085/178] bnxt_en: Call bnxt_ethtool_free() in bnxt_init_one() error path Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 086/178] icmp: dont send out ICMP messages with a source address of 0.0.0.0 Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 087/178] net: ethernet: fix potential use-after-free in ec_bhf_remove Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 088/178] regulator: cros-ec: Fix error code in dev_err message Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 089/178] regulator: max77620: Silence deferred probe error Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 090/178] regulator: bd70528: Fix off-by-one for buck123 .n_voltages setting Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 091/178] platform/x86: thinkpad_acpi: Add X1 Carbon Gen 9 second fan support Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 092/178] ASoC: rt5659: Fix the lost powers for the HDA header Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 093/178] phy: phy-mtk-tphy: Fix some resource leaks in mtk_phy_init() Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 094/178] ASoC: fsl-asoc-card: Set .owner attribute when registering card Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 095/178] regulator: mt6315: Fix function prototype for mt6315_map_mode Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 096/178] regulator: rtmv20: Fix to make regcache value first reading back from HW Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 097/178] spi: spi-zynq-qspi: Fix some wrong goto jumps & missing error code Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 098/178] sched/pelt: Ensure that *_sum is always synced with *_avg Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 099/178] ASoC: tas2562: Fix TDM_CFG0_SAMPRATE values Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 100/178] regulator: hi6421v600: Fix .vsel_mask setting Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 101/178] spi: stm32-qspi: Always wait BUSY bit to be cleared in stm32_qspi_wait_cmd() Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 102/178] regulator: rt4801: Fix NULL pointer dereference if priv->enable_gpios is NULL Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 103/178] ASoC: rt5682: Fix the fast discharge for headset unplugging in soundwire mode Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 104/178] pinctrl: ralink: rt2880: avoid to error in calls is pin is already enabled Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 105/178] drm/sun4i: dw-hdmi: Make HDMI PHY into a platform device Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 106/178] ASoC: qcom: lpass-cpu: Fix pop noise during audio capture begin Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 107/178] radeon: use memcpy_to/fromio for UVD fw upload Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 108/178] hwmon: (scpi-hwmon) shows the negative temperature properly Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 109/178] riscv: code patching only works on !XIP_KERNEL Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 110/178] mm: relocate write_protect_seq in struct mm_struct Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 111/178] irqchip/gic-v3: Workaround inconsistent PMR setting on NMI entry Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 112/178] sched/fair: Correctly insert cfs_rqs to list on unthrottle Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 113/178] perf metricgroup: Fix find_evsel_group() event selector Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 114/178] perf metricgroup: Return error code from metricgroup__add_metric_sys_event_iter() Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 115/178] bpf: Inherit expanded/patched seen count from old aux data Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 116/178] bpf: Do not mark insn as seen under speculative path verification Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 117/178] can: bcm: fix infoleak in struct bcm_msg_head Greg Kroah-Hartman
2021-06-21 16:15 ` Greg Kroah-Hartman [this message]
2021-06-21 16:15 ` [PATCH 5.12 119/178] can: j1939: fix Use-after-Free, hold skb ref while in use Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 120/178] can: mcba_usb: fix memory leak in mcba_usb Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 121/178] usb: core: hub: Disable autosuspend for Cypress CY7C65632 Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 122/178] usb: chipidea: imx: Fix Battery Charger 1.2 CDP detection Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 123/178] tracing: Do not stop recording cmdlines when tracing is off Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 124/178] tracing: Do not stop recording comms if the trace file is being read Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 125/178] tracing: Do no increment trace_clock_global() by one Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 126/178] PCI: Mark TI C667X to avoid bus reset Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 127/178] PCI: Mark some NVIDIA GPUs " Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 128/178] PCI: Mark AMD Navi14 GPU ATS as broken Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 129/178] PCI: aardvark: Fix kernel panic during PIO transfer Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 130/178] PCI: Add ACS quirk for Broadcom BCM57414 NIC Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 131/178] PCI: Work around Huawei Intelligent NIC VF FLR erratum Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 132/178] btrfs: zoned: fix negative space_info->bytes_readonly Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 133/178] s390/mcck: fix invalid KVM guest condition check Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 134/178] KVM: x86: Immediately reset the MMU context when the SMM flag is cleared Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 135/178] KVM: x86/mmu: Calculate and check "full" mmu_role for nested MMU Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 136/178] KVM: X86: Fix x86_emulator slab cache leak Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 137/178] s390/mcck: fix calculation of SIE critical section size Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 138/178] s390/ap: Fix hanging ioctl caused by wrong msg counter Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 139/178] ARCv2: save ABI registers across signal handling Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 140/178] x86/mm: Avoid truncating memblocks for SGX memory Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 141/178] x86/process: Check PF_KTHREAD and not current->mm for kernel threads Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 142/178] x86/ioremap: Map EFI-reserved memory as encrypted for SEV Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 143/178] x86/pkru: Write hardware init value to PKRU when xstate is init Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 144/178] x86/fpu: Prevent state corruption in __fpu__restore_sig() Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.12 145/178] x86/fpu: Invalidate FPU state after a failed XRSTOR from a user buffer Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 146/178] x86/fpu: Reset state for all signal restore failures Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 147/178] powerpc/perf: Fix crash in perf_instruction_pointer() when ppmu is not set Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 148/178] Makefile: lto: Pass -warn-stack-size only on LLD < 13.0.0 Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 149/178] crash_core, vmcoreinfo: append SECTION_SIZE_BITS to vmcoreinfo Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 150/178] dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 151/178] mac80211: fix deadlock in AP/VLAN handling Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 152/178] mac80211: Fix NULL ptr deref for injected rate info Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 153/178] mac80211: fix reset debugfs locking Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 154/178] cfg80211: fix phy80211 symlink creation Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 155/178] cfg80211: shut down interfaces on failed resume Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 156/178] mac80211: move interface shutdown out of wiphy lock Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 157/178] mac80211: minstrel_ht: fix sample time check Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 158/178] cfg80211: make certificate generation more robust Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 159/178] cfg80211: avoid double free of PMSR request Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 160/178] drm/amdgpu/gfx10: enlarge CP_MEC_DOORBELL_RANGE_UPPER to cover full doorbell Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 161/178] drm/amdgpu/gfx9: fix the doorbell missing when in CGPG issue Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 162/178] net: ll_temac: Make sure to free skb when it is completely used Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 163/178] net: ll_temac: Fix TX BD buffer overwrite Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 164/178] net: bridge: fix vlan tunnel dst null pointer dereference Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 165/178] net: bridge: fix vlan tunnel dst refcnt when egressing Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 166/178] mm,hwpoison: fix race with hugetlb page allocation Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 167/178] mm/swap: fix pte_same_as_swp() not removing uffd-wp bit when compare Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 168/178] mm/hugetlb: expand restore_reserve_on_error functionality Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 169/178] mm/slub: clarify verification reporting Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 170/178] mm/slub: fix redzoning for small allocations Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 171/178] mm/slub: actually fix freelist pointer vs redzoning Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 172/178] mm/slub.c: include swab.h Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 173/178] net: stmmac: disable clocks in stmmac_remove_config_dt() Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 174/178] net: fec_ptp: add clock rate zero check Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 175/178] tools headers UAPI: Sync linux/in.h copy with the kernel sources Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 176/178] perf beauty: Update copy of linux/socket.h " Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 177/178] usb: dwc3: debugfs: Add and remove endpoint dirs dynamically Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.12 178/178] usb: dwc3: core: fix kernel panic when do reboot Greg Kroah-Hartman
2021-06-21 19:39 ` [PATCH 5.12 000/178] 5.12.13-rc1 review Florian Fainelli
2021-06-22  2:16 ` Naresh Kamboju
2021-06-22  8:03 ` Jon Hunter
2021-06-22 21:35 ` Guenter Roeck
2021-06-22 23:58 ` Shuah Khan
2021-06-23  1:58 ` Rudi Heitbaum
2021-06-23 15:12 ` Fox Chen

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=20210621154926.795631447@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=ktkhai@virtuozzo.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=penguin-kernel@I-love.SAKURA.ne.jp \
    --cc=socketcan@hartkopp.net \
    --cc=stable@vger.kernel.org \
    --cc=syzbot+0f1827363a305f74996f@syzkaller.appspotmail.com \
    --cc=syzbot+355f8edb2ff45d5f95fa@syzkaller.appspotmail.com \
    /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.