From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Eric Dumazet <edumazet@google.com>,
Vlad Buslov <vladbu@mellanox.com>,
syzbot <syzkaller@googlegroups.com>,
Jamal Hadi Salim <jhs@mojatatu.com>,
Cong Wang <xiyou.wangcong@gmail.com>,
Jiri Pirko <jiri@resnulli.us>,
"David S. Miller" <davem@davemloft.net>
Subject: [PATCH 5.15 098/196] net_sched: add __rcu annotation to netdev->qdisc
Date: Mon, 21 Feb 2022 09:48:50 +0100 [thread overview]
Message-ID: <20220221084934.224688962@linuxfoundation.org> (raw)
In-Reply-To: <20220221084930.872957717@linuxfoundation.org>
From: Eric Dumazet <edumazet@google.com>
commit 5891cd5ec46c2c2eb6427cb54d214b149635dd0e upstream.
syzbot found a data-race [1] which lead me to add __rcu
annotations to netdev->qdisc, and proper accessors
to get LOCKDEP support.
[1]
BUG: KCSAN: data-race in dev_activate / qdisc_lookup_rcu
write to 0xffff888168ad6410 of 8 bytes by task 13559 on cpu 1:
attach_default_qdiscs net/sched/sch_generic.c:1167 [inline]
dev_activate+0x2ed/0x8f0 net/sched/sch_generic.c:1221
__dev_open+0x2e9/0x3a0 net/core/dev.c:1416
__dev_change_flags+0x167/0x3f0 net/core/dev.c:8139
rtnl_configure_link+0xc2/0x150 net/core/rtnetlink.c:3150
__rtnl_newlink net/core/rtnetlink.c:3489 [inline]
rtnl_newlink+0xf4d/0x13e0 net/core/rtnetlink.c:3529
rtnetlink_rcv_msg+0x745/0x7e0 net/core/rtnetlink.c:5594
netlink_rcv_skb+0x14e/0x250 net/netlink/af_netlink.c:2494
rtnetlink_rcv+0x18/0x20 net/core/rtnetlink.c:5612
netlink_unicast_kernel net/netlink/af_netlink.c:1317 [inline]
netlink_unicast+0x602/0x6d0 net/netlink/af_netlink.c:1343
netlink_sendmsg+0x728/0x850 net/netlink/af_netlink.c:1919
sock_sendmsg_nosec net/socket.c:705 [inline]
sock_sendmsg net/socket.c:725 [inline]
____sys_sendmsg+0x39a/0x510 net/socket.c:2413
___sys_sendmsg net/socket.c:2467 [inline]
__sys_sendmsg+0x195/0x230 net/socket.c:2496
__do_sys_sendmsg net/socket.c:2505 [inline]
__se_sys_sendmsg net/socket.c:2503 [inline]
__x64_sys_sendmsg+0x42/0x50 net/socket.c:2503
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
read to 0xffff888168ad6410 of 8 bytes by task 13560 on cpu 0:
qdisc_lookup_rcu+0x30/0x2e0 net/sched/sch_api.c:323
__tcf_qdisc_find+0x74/0x3a0 net/sched/cls_api.c:1050
tc_del_tfilter+0x1c7/0x1350 net/sched/cls_api.c:2211
rtnetlink_rcv_msg+0x5ba/0x7e0 net/core/rtnetlink.c:5585
netlink_rcv_skb+0x14e/0x250 net/netlink/af_netlink.c:2494
rtnetlink_rcv+0x18/0x20 net/core/rtnetlink.c:5612
netlink_unicast_kernel net/netlink/af_netlink.c:1317 [inline]
netlink_unicast+0x602/0x6d0 net/netlink/af_netlink.c:1343
netlink_sendmsg+0x728/0x850 net/netlink/af_netlink.c:1919
sock_sendmsg_nosec net/socket.c:705 [inline]
sock_sendmsg net/socket.c:725 [inline]
____sys_sendmsg+0x39a/0x510 net/socket.c:2413
___sys_sendmsg net/socket.c:2467 [inline]
__sys_sendmsg+0x195/0x230 net/socket.c:2496
__do_sys_sendmsg net/socket.c:2505 [inline]
__se_sys_sendmsg net/socket.c:2503 [inline]
__x64_sys_sendmsg+0x42/0x50 net/socket.c:2503
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
value changed: 0xffffffff85dee080 -> 0xffff88815d96ec00
Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 13560 Comm: syz-executor.2 Not tainted 5.17.0-rc3-syzkaller-00116-gf1baf68e1383-dirty #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Fixes: 470502de5bdb ("net: sched: unlock rules update API")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Vlad Buslov <vladbu@mellanox.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Cong Wang <xiyou.wangcong@gmail.com>
Cc: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/linux/netdevice.h | 2 +-
net/core/rtnetlink.c | 6 ++++--
net/sched/cls_api.c | 6 +++---
net/sched/sch_api.c | 22 ++++++++++++----------
net/sched/sch_generic.c | 29 ++++++++++++++++-------------
5 files changed, 36 insertions(+), 29 deletions(-)
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2149,7 +2149,7 @@ struct net_device {
struct netdev_queue *_tx ____cacheline_aligned_in_smp;
unsigned int num_tx_queues;
unsigned int real_num_tx_queues;
- struct Qdisc *qdisc;
+ struct Qdisc __rcu *qdisc;
unsigned int tx_queue_len;
spinlock_t tx_global_lock;
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1698,6 +1698,7 @@ static int rtnl_fill_ifinfo(struct sk_bu
{
struct ifinfomsg *ifm;
struct nlmsghdr *nlh;
+ struct Qdisc *qdisc;
ASSERT_RTNL();
nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ifm), flags);
@@ -1715,6 +1716,7 @@ static int rtnl_fill_ifinfo(struct sk_bu
if (tgt_netnsid >= 0 && nla_put_s32(skb, IFLA_TARGET_NETNSID, tgt_netnsid))
goto nla_put_failure;
+ qdisc = rtnl_dereference(dev->qdisc);
if (nla_put_string(skb, IFLA_IFNAME, dev->name) ||
nla_put_u32(skb, IFLA_TXQLEN, dev->tx_queue_len) ||
nla_put_u8(skb, IFLA_OPERSTATE,
@@ -1733,8 +1735,8 @@ static int rtnl_fill_ifinfo(struct sk_bu
#endif
put_master_ifindex(skb, dev) ||
nla_put_u8(skb, IFLA_CARRIER, netif_carrier_ok(dev)) ||
- (dev->qdisc &&
- nla_put_string(skb, IFLA_QDISC, dev->qdisc->ops->id)) ||
+ (qdisc &&
+ nla_put_string(skb, IFLA_QDISC, qdisc->ops->id)) ||
nla_put_ifalias(skb, dev) ||
nla_put_u32(skb, IFLA_CARRIER_CHANGES,
atomic_read(&dev->carrier_up_count) +
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -1044,7 +1044,7 @@ static int __tcf_qdisc_find(struct net *
/* Find qdisc */
if (!*parent) {
- *q = dev->qdisc;
+ *q = rcu_dereference(dev->qdisc);
*parent = (*q)->handle;
} else {
*q = qdisc_lookup_rcu(dev, TC_H_MAJ(*parent));
@@ -2587,7 +2587,7 @@ static int tc_dump_tfilter(struct sk_buf
parent = tcm->tcm_parent;
if (!parent)
- q = dev->qdisc;
+ q = rtnl_dereference(dev->qdisc);
else
q = qdisc_lookup(dev, TC_H_MAJ(tcm->tcm_parent));
if (!q)
@@ -2962,7 +2962,7 @@ static int tc_dump_chain(struct sk_buff
return skb->len;
if (!tcm->tcm_parent)
- q = dev->qdisc;
+ q = rtnl_dereference(dev->qdisc);
else
q = qdisc_lookup(dev, TC_H_MAJ(tcm->tcm_parent));
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -301,7 +301,7 @@ struct Qdisc *qdisc_lookup(struct net_de
if (!handle)
return NULL;
- q = qdisc_match_from_root(dev->qdisc, handle);
+ q = qdisc_match_from_root(rtnl_dereference(dev->qdisc), handle);
if (q)
goto out;
@@ -320,7 +320,7 @@ struct Qdisc *qdisc_lookup_rcu(struct ne
if (!handle)
return NULL;
- q = qdisc_match_from_root(dev->qdisc, handle);
+ q = qdisc_match_from_root(rcu_dereference(dev->qdisc), handle);
if (q)
goto out;
@@ -1082,10 +1082,10 @@ static int qdisc_graft(struct net_device
skip:
if (!ingress) {
notify_and_destroy(net, skb, n, classid,
- dev->qdisc, new);
+ rtnl_dereference(dev->qdisc), new);
if (new && !new->ops->attach)
qdisc_refcount_inc(new);
- dev->qdisc = new ? : &noop_qdisc;
+ rcu_assign_pointer(dev->qdisc, new ? : &noop_qdisc);
if (new && new->ops->attach)
new->ops->attach(new);
@@ -1460,7 +1460,7 @@ static int tc_get_qdisc(struct sk_buff *
q = dev_ingress_queue(dev)->qdisc_sleeping;
}
} else {
- q = dev->qdisc;
+ q = rtnl_dereference(dev->qdisc);
}
if (!q) {
NL_SET_ERR_MSG(extack, "Cannot find specified qdisc on specified device");
@@ -1549,7 +1549,7 @@ replay:
q = dev_ingress_queue(dev)->qdisc_sleeping;
}
} else {
- q = dev->qdisc;
+ q = rtnl_dereference(dev->qdisc);
}
/* It may be default qdisc, ignore it */
@@ -1771,7 +1771,8 @@ static int tc_dump_qdisc(struct sk_buff
s_q_idx = 0;
q_idx = 0;
- if (tc_dump_qdisc_root(dev->qdisc, skb, cb, &q_idx, s_q_idx,
+ if (tc_dump_qdisc_root(rtnl_dereference(dev->qdisc),
+ skb, cb, &q_idx, s_q_idx,
true, tca[TCA_DUMP_INVISIBLE]) < 0)
goto done;
@@ -2042,7 +2043,7 @@ static int tc_ctl_tclass(struct sk_buff
} else if (qid1) {
qid = qid1;
} else if (qid == 0)
- qid = dev->qdisc->handle;
+ qid = rtnl_dereference(dev->qdisc)->handle;
/* Now qid is genuine qdisc handle consistent
* both with parent and child.
@@ -2053,7 +2054,7 @@ static int tc_ctl_tclass(struct sk_buff
portid = TC_H_MAKE(qid, portid);
} else {
if (qid == 0)
- qid = dev->qdisc->handle;
+ qid = rtnl_dereference(dev->qdisc)->handle;
}
/* OK. Locate qdisc */
@@ -2214,7 +2215,8 @@ static int tc_dump_tclass(struct sk_buff
s_t = cb->args[0];
t = 0;
- if (tc_dump_tclass_root(dev->qdisc, skb, tcm, cb, &t, s_t, true) < 0)
+ if (tc_dump_tclass_root(rtnl_dereference(dev->qdisc),
+ skb, tcm, cb, &t, s_t, true) < 0)
goto done;
dev_queue = dev_ingress_queue(dev);
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -1114,30 +1114,33 @@ static void attach_default_qdiscs(struct
if (!netif_is_multiqueue(dev) ||
dev->priv_flags & IFF_NO_QUEUE) {
netdev_for_each_tx_queue(dev, attach_one_default_qdisc, NULL);
- dev->qdisc = txq->qdisc_sleeping;
- qdisc_refcount_inc(dev->qdisc);
+ qdisc = txq->qdisc_sleeping;
+ rcu_assign_pointer(dev->qdisc, qdisc);
+ qdisc_refcount_inc(qdisc);
} else {
qdisc = qdisc_create_dflt(txq, &mq_qdisc_ops, TC_H_ROOT, NULL);
if (qdisc) {
- dev->qdisc = qdisc;
+ rcu_assign_pointer(dev->qdisc, qdisc);
qdisc->ops->attach(qdisc);
}
}
+ qdisc = rtnl_dereference(dev->qdisc);
/* Detect default qdisc setup/init failed and fallback to "noqueue" */
- if (dev->qdisc == &noop_qdisc) {
+ if (qdisc == &noop_qdisc) {
netdev_warn(dev, "default qdisc (%s) fail, fallback to %s\n",
default_qdisc_ops->id, noqueue_qdisc_ops.id);
dev->priv_flags |= IFF_NO_QUEUE;
netdev_for_each_tx_queue(dev, attach_one_default_qdisc, NULL);
- dev->qdisc = txq->qdisc_sleeping;
- qdisc_refcount_inc(dev->qdisc);
+ qdisc = txq->qdisc_sleeping;
+ rcu_assign_pointer(dev->qdisc, qdisc);
+ qdisc_refcount_inc(qdisc);
dev->priv_flags ^= IFF_NO_QUEUE;
}
#ifdef CONFIG_NET_SCHED
- if (dev->qdisc != &noop_qdisc)
- qdisc_hash_add(dev->qdisc, false);
+ if (qdisc != &noop_qdisc)
+ qdisc_hash_add(qdisc, false);
#endif
}
@@ -1167,7 +1170,7 @@ void dev_activate(struct net_device *dev
* and noqueue_qdisc for virtual interfaces
*/
- if (dev->qdisc == &noop_qdisc)
+ if (rtnl_dereference(dev->qdisc) == &noop_qdisc)
attach_default_qdiscs(dev);
if (!netif_carrier_ok(dev))
@@ -1333,7 +1336,7 @@ static int qdisc_change_tx_queue_len(str
void dev_qdisc_change_real_num_tx(struct net_device *dev,
unsigned int new_real_tx)
{
- struct Qdisc *qdisc = dev->qdisc;
+ struct Qdisc *qdisc = rtnl_dereference(dev->qdisc);
if (qdisc->ops->change_real_num_tx)
qdisc->ops->change_real_num_tx(qdisc, new_real_tx);
@@ -1373,7 +1376,7 @@ static void dev_init_scheduler_queue(str
void dev_init_scheduler(struct net_device *dev)
{
- dev->qdisc = &noop_qdisc;
+ rcu_assign_pointer(dev->qdisc, &noop_qdisc);
netdev_for_each_tx_queue(dev, dev_init_scheduler_queue, &noop_qdisc);
if (dev_ingress_queue(dev))
dev_init_scheduler_queue(dev, dev_ingress_queue(dev), &noop_qdisc);
@@ -1401,8 +1404,8 @@ void dev_shutdown(struct net_device *dev
netdev_for_each_tx_queue(dev, shutdown_scheduler_queue, &noop_qdisc);
if (dev_ingress_queue(dev))
shutdown_scheduler_queue(dev, dev_ingress_queue(dev), &noop_qdisc);
- qdisc_put(dev->qdisc);
- dev->qdisc = &noop_qdisc;
+ qdisc_put(rtnl_dereference(dev->qdisc));
+ rcu_assign_pointer(dev->qdisc, &noop_qdisc);
WARN_ON(timer_pending(&dev->watchdog_timer));
}
next prev parent reply other threads:[~2022-02-21 9:33 UTC|newest]
Thread overview: 209+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-21 8:47 [PATCH 5.15 000/196] 5.15.25-rc1 review Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 001/196] drm/nouveau/pmu/gm200-: use alternate falcon reset sequence Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 002/196] fs/proc: task_mmu.c: dont read mapcount for migration entry Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 003/196] btrfs: zoned: cache reported zone during mount Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 004/196] scsi: lpfc: Fix mailbox command failure during driver initialization Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 005/196] HID:Add support for UGTABLET WP5540 Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 006/196] Revert "svm: Add warning message for AVIC IPI invalid target" Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 007/196] parisc: Show error if wrong 32/64-bit compiler is being used Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 008/196] serial: parisc: GSC: fix build when IOSAPIC is not set Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 009/196] parisc: Drop __init from map_pages declaration Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 010/196] parisc: Fix data TLB miss in sba_unmap_sg Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 011/196] parisc: Fix sglist access in ccio-dma.c Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 012/196] mmc: block: fix read single on recovery logic Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 013/196] mm: dont try to NUMA-migrate COW pages that have other uses Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 014/196] HID: amd_sfh: Add illuminance mask to limit ALS max value Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 015/196] HID: i2c-hid: goodix: Fix a lockdep splat Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 016/196] HID: amd_sfh: Increase sensor command timeout Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 017/196] HID: amd_sfh: Correct the structure field name Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 018/196] PCI: hv: Fix NUMA node assignment when kernel boots with custom NUMA topology Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 019/196] parisc: Add ioread64_lo_hi() and iowrite64_lo_hi() Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 020/196] btrfs: send: in case of IO error log it Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 021/196] platform/x86: touchscreen_dmi: Add info for the RWC NANOTE P8 AY07J 2-in-1 Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 022/196] platform/x86: ISST: Fix possible circular locking dependency detected Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 023/196] kunit: tool: Import missing importlib.abc Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 024/196] selftests: rtc: Increase test timeout so that all tests run Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 025/196] kselftest: signal all child processes Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 026/196] net: ieee802154: at86rf230: Stop leaking skbs Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 027/196] selftests/zram: Skip max_comp_streams interface on newer kernel Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 028/196] selftests/zram01.sh: Fix compression ratio calculation Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 029/196] selftests/zram: Adapt the situation that /dev/zram0 is being used Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 030/196] selftests: openat2: Print also errno in failure messages Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 031/196] selftests: openat2: Add missing dependency in Makefile Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 032/196] selftests: openat2: Skip testcases that fail with EOPNOTSUPP Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 033/196] selftests: skip mincore.check_file_mmap when fs lacks needed support Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 034/196] ax25: improve the incomplete fix to avoid UAF and NPD bugs Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 035/196] pinctrl: bcm63xx: fix unmet dependency on REGMAP for GPIO_REGMAP Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 036/196] vfs: make freeze_super abort when sync_filesystem returns error Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 037/196] quota: make dquot_quota_sync return errors from ->sync_fs Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 038/196] scsi: pm80xx: Fix double completion for SATA devices Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 039/196] kselftest: Fix vdso_test_abi return status Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 040/196] scsi: core: Reallocate devices budget map on queue depth change Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 041/196] scsi: pm8001: Fix use-after-free for aborted TMF sas_task Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 042/196] scsi: pm8001: Fix use-after-free for aborted SSP/STP sas_task Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 043/196] drm/amd: Warn users about potential s0ix problems Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 044/196] nvme: fix a possible use-after-free in controller reset during load Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 045/196] nvme-tcp: fix possible use-after-free in transport error_recovery work Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 046/196] nvme-rdma: " Greg Kroah-Hartman
2022-02-21 8:47 ` [PATCH 5.15 047/196] net: sparx5: do not refer to skb after passing it on Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 048/196] drm/amd: add support to check whether the system is set to s3 Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 049/196] drm/amd: Only run s3 or s0ix if system is configured properly Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 050/196] drm/amdgpu: fix logic inversion in check Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 051/196] x86/Xen: streamline (and fix) PV CPU enumeration Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 052/196] Revert "module, async: async_synchronize_full() on module init iff async is used" Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 053/196] gcc-plugins/stackleak: Use noinstr in favor of notrace Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 054/196] random: wake up /dev/random writers after zap Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 055/196] KVM: x86/xen: Fix runstate updates to be atomic when preempting vCPU Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 056/196] KVM: x86: nSVM/nVMX: set nested_run_pending on VM entry which is a result of RSM Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 057/196] KVM: x86: SVM: dont passthrough SMAP/SMEP/PKE bits in !NPT && !gCR0.PG case Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 058/196] KVM: x86: nSVM: fix potential NULL derefernce on nested migration Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 059/196] KVM: x86: nSVM: mark vmcb01 as dirty when restoring SMM saved state Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 060/196] iwlwifi: fix use-after-free Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 061/196] drm/radeon: Fix backlight control on iMac 12,1 Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 062/196] drm/atomic: Dont pollute crtc_state->mode_blob with error pointers Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 063/196] drm/amd/pm: correct the sequence of sending gpu reset msg Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 064/196] drm/amdgpu: skipping SDMA hw_init and hw_fini for S0ix Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 065/196] drm/i915/opregion: check port number bounds for SWSCI display power state Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 066/196] drm/i915: Fix dbuf slice config lookup Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 067/196] drm/i915: Fix mbus join " Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 068/196] vsock: remove vsock from connected table when connect is interrupted by a signal Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 069/196] tee: export teedev_open() and teedev_close_context() Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 070/196] optee: use driver internal tee_context for some rpc Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 071/196] drm/cma-helper: Set VM_DONTEXPAND for mmap Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 072/196] drm/i915/gvt: Make DRM_I915_GVT depend on X86 Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 073/196] drm/i915/ttm: tweak priority hint selection Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 074/196] iwlwifi: pcie: fix locking when "HW not ready" Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 075/196] iwlwifi: pcie: gen2: " Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 076/196] iwlwifi: mvm: dont send SAR GEO command for 3160 devices Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 077/196] netfilter: xt_socket: fix a typo in socket_mt_destroy() Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 078/196] selftests: netfilter: fix exit value for nft_concat_range Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 079/196] netfilter: nft_synproxy: unregister hooks on init error path Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 080/196] selftests: netfilter: disable rp_filter on router Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 081/196] ipv4: fix data races in fib_alias_hw_flags_set Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 082/196] ipv6: fix data-race in fib6_info_hw_flags_set / fib6_purge_rt Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 083/196] ipv6: mcast: use rcu-safe version of ipv6_get_lladdr() Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 084/196] ipv6: per-netns exclusive flowlabel checks Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 085/196] Revert "net: ethernet: bgmac: Use devm_platform_ioremap_resource_byname" Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 086/196] mac80211: mlme: check for null after calling kmemdup Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 087/196] brcmfmac: firmware: Fix crash in brcm_alt_fw_path Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 088/196] cfg80211: fix race in netlink owner interface destruction Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 089/196] net: dsa: lan9303: fix reset on probe Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 090/196] net: dsa: mv88e6xxx: flush switchdev FDB workqueue before removing VLAN Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 091/196] net: dsa: lantiq_gswip: fix use after free in gswip_remove() Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 092/196] net: dsa: lan9303: handle hwaccel VLAN tags Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 093/196] net: dsa: lan9303: add VLAN IDs to master device Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 094/196] net: ieee802154: ca8210: Fix lifs/sifs periods Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 095/196] ping: fix the dif and sdif check in ping_lookup Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 096/196] bonding: force carrier update when releasing slave Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 097/196] drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit Greg Kroah-Hartman
2022-02-21 8:48 ` Greg Kroah-Hartman [this message]
2022-02-21 8:48 ` [PATCH 5.15 099/196] bonding: fix data-races around agg_select_timer Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 100/196] libsubcmd: Fix use-after-free for realloc(..., 0) Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 101/196] net/smc: Avoid overwriting the copies of clcsock callback functions Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 102/196] net: phy: mediatek: remove PHY mode check on MT7531 Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 103/196] atl1c: fix tx timeout after link flap on Mikrotik 10/25G NIC Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 104/196] tipc: fix wrong publisher node address in link publications Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 105/196] dpaa2-switch: fix default return of dpaa2_switch_flower_parse_mirror_key Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 106/196] dpaa2-eth: Initialize mutex used in one step timestamping path Greg Kroah-Hartman
2022-02-21 8:48 ` [PATCH 5.15 107/196] net: bridge: multicast: notify switchdev driver whenever MC processing gets disabled Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 108/196] perf bpf: Defer freeing string after possible strlen() on it Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 109/196] selftests/exec: Add non-regular to TEST_GEN_PROGS Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 110/196] arm64: Correct wrong label in macro __init_el2_gicv3 Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 111/196] ALSA: usb-audio: revert to IMPLICIT_FB_FIXED_DEV for M-Audio FastTrack Ultra Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 112/196] ALSA: hda/realtek: Add quirk for Legion Y9000X 2019 Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 113/196] ALSA: hda/realtek: Fix deadlock by COEF mutex Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 114/196] ALSA: hda: Fix regression on forced probe mask option Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 115/196] ALSA: hda: Fix missing codec probe on Shenker Dock 15 Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 116/196] ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw() Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 117/196] ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range() Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 118/196] ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_sx() Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 119/196] ASoC: ops: Fix stereo change notifications in snd_soc_put_xr_sx() Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 120/196] cifs: fix set of group SID via NTSD xattrs Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 121/196] powerpc/603: Fix boot failure with DEBUG_PAGEALLOC and KFENCE Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 122/196] powerpc/lib/sstep: fix ptesync build error Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 123/196] mtd: rawnand: gpmi: dont leak PM reference in error path Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 124/196] smb3: fix snapshot mount option Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 125/196] tipc: fix wrong notification node addresses Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 126/196] scsi: ufs: Remove dead code Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 127/196] scsi: ufs: Fix a deadlock in the error handler Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 128/196] ASoC: tas2770: Insert post reset delay Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 129/196] ASoC: qcom: Actually clear DMA interrupt register for HDMI Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 130/196] block/wbt: fix negative inflight counter when remove scsi device Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 131/196] NFS: Remove an incorrect revalidation in nfs4_update_changeattr_locked() Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 132/196] NFS: LOOKUP_DIRECTORY is also ok with symlinks Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 133/196] NFS: Do not report writeback errors in nfs_getattr() Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 134/196] tty: n_tty: do not look ahead for EOL character past the end of the buffer Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 135/196] block: fix surprise removal for drivers calling blk_set_queue_dying Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 136/196] mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe() Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 137/196] mtd: parsers: qcom: Fix kernel panic on skipped partition Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 138/196] mtd: parsers: qcom: Fix missing free for pparts in cleanup Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 139/196] mtd: phram: Prevent divide by zero bug in phram_setup() Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 140/196] mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 141/196] HID: elo: fix memory leak in elo_probe Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 142/196] mtd: rawnand: ingenic: Fix missing put_device in ingenic_ecc_get Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 143/196] Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 144/196] KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id() Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 145/196] KVM: x86/pmu: Dont truncate the PerfEvtSeln MSR when creating a perf event Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 146/196] KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 147/196] ARM: OMAP2+: hwmod: Add of_node_put() before break Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 148/196] ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 149/196] phy: usb: Leave some clocks running during suspend Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 150/196] staging: vc04_services: Fix RCU dereference check Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 151/196] phy: phy-mtk-tphy: Fix duplicated argument in phy-mtk-tphy Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 152/196] irqchip/sifive-plic: Add missing thead,c900-plic match string Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 153/196] x86/bug: Merge annotate_reachable() into _BUG_FLAGS() asm Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 154/196] netfilter: conntrack: dont refresh sctp entries in closed state Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 155/196] ksmbd: fix same UniqueId for dot and dotdot entries Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 156/196] ksmbd: dont align last entry offset in smb2 query directory Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 157/196] arm64: dts: meson-gx: add ATF BL32 reserved-memory region Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 158/196] arm64: dts: meson-g12: " Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 159/196] arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610 Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 160/196] pidfd: fix test failure due to stack overflow on some arches Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 161/196] selftests: fixup build warnings in pidfd / clone3 tests Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 162/196] mm: io_uring: allow oom-killer from io_uring_setup Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 163/196] ACPI: PM: Revert "Only mark EC GPE for wakeup on Intel systems" Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 164/196] kconfig: let shell return enough output for deep path names Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 165/196] ata: libata-core: Disable TRIM on M88V29 Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 166/196] soc: aspeed: lpc-ctrl: Block error printing on probe defer cases Greg Kroah-Hartman
2022-02-21 8:49 ` [PATCH 5.15 167/196] xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 168/196] drm/rockchip: dw_hdmi: Do not leave clock enabled in error case Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 169/196] tracing: Fix tp_printk option related with tp_printk_stop_on_boot Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 170/196] display/amd: decrease message verbosity about watermarks table failure Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 171/196] drm/amd/display: Cap pflip irqs per max otg number Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 172/196] drm/amd/display: fix yellow carp wm clamping Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 173/196] net: usb: qmi_wwan: Add support for Dell DW5829e Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 174/196] net: macb: Align the dma and coherent dma masks Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 175/196] kconfig: fix failing to generate auto.conf Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 176/196] scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 177/196] EDAC: Fix calculation of returned address and next offset in edac_align_ptr() Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 178/196] ucounts: Handle wrapping in is_ucounts_overlimit Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 179/196] ucounts: In set_cred_ucounts assume new->ucounts is non-NULL Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 180/196] ucounts: Base set_cred_ucounts changes on the real user Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 181/196] ucounts: Enforce RLIMIT_NPROC not RLIMIT_NPROC+1 Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 182/196] rlimit: Fix RLIMIT_NPROC enforcement failure caused by capability calls in set_user Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 183/196] ucounts: Move RLIMIT_NPROC handling after set_user Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 184/196] net: sched: limit TC_ACT_REPEAT loops Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 185/196] dmaengine: sh: rcar-dmac: Check for error num after setting mask Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 186/196] dmaengine: stm32-dmamux: Fix PM disable depth imbalance in stm32_dmamux_probe Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 187/196] dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 188/196] tests: fix idmapped mount_setattr test Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 189/196] i2c: qcom-cci: dont delete an unregistered adapter Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 190/196] i2c: qcom-cci: dont put a device tree node before i2c_add_adapter() Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 191/196] dmaengine: ptdma: Fix the error handling path in pt_core_init() Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 192/196] copy_process(): Move fd_install() out of sighand->siglock critical section Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 193/196] scsi: qedi: Fix ABBA deadlock in qedi_process_tmf_resp() and qedi_process_cmd_cleanup_resp() Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 194/196] ice: enable parsing IPSEC SPI headers for RSS Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 195/196] i2c: brcmstb: fix support for DSL and CM variants Greg Kroah-Hartman
2022-02-21 8:50 ` [PATCH 5.15 196/196] lockdep: Correct lock_classes index mapping Greg Kroah-Hartman
2022-02-21 17:15 ` [PATCH 5.15 000/196] 5.15.25-rc1 review Guenter Roeck
2022-02-21 18:00 ` Greg Kroah-Hartman
2022-02-21 22:28 ` Jens Wiklander
2022-02-22 8:54 ` Greg Kroah-Hartman
2022-02-21 20:50 ` Naresh Kamboju
2022-02-21 21:21 ` Guenter Roeck
2022-02-21 21:39 ` Shuah Khan
2022-02-22 4:03 ` Florian Fainelli
2022-02-22 5:39 ` Bagas Sanjaya
2022-02-22 5:59 ` Ron Economos
2022-02-22 12:30 ` Sudip Mukherjee
2022-02-23 2:54 ` Slade Watkins
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=20220221084934.224688962@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jhs@mojatatu.com \
--cc=jiri@resnulli.us \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=syzkaller@googlegroups.com \
--cc=vladbu@mellanox.com \
--cc=xiyou.wangcong@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox