linux-kernel.vger.kernel.org archive mirror
 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, Luis Machado <luis.machado@linaro.org>,
	Will Deacon <will@kernel.org>,
	Russell King <rmk+kernel@armlinux.org.uk>
Subject: [PATCH 5.7 015/120] ARM: 8986/1: hw_breakpoint: Dont invoke overflow handler on uaccess watchpoints
Date: Mon,  3 Aug 2020 14:17:53 +0200	[thread overview]
Message-ID: <20200803121903.602176967@linuxfoundation.org> (raw)
In-Reply-To: <20200803121902.860751811@linuxfoundation.org>

From: Will Deacon <will@kernel.org>

commit eec13b42d41b0f3339dcf0c4da43734427c68620 upstream.

Unprivileged memory accesses generated by the so-called "translated"
instructions (e.g. LDRT) in kernel mode can cause user watchpoints to fire
unexpectedly. In such cases, the hw_breakpoint logic will invoke the user
overflow handler which will typically raise a SIGTRAP back to the current
task. This is futile when returning back to the kernel because (a) the
signal won't have been delivered and (b) userspace can't handle the thing
anyway.

Avoid invoking the user overflow handler for watchpoints triggered by
kernel uaccess routines, and instead single-step over the faulting
instruction as we would if no overflow handler had been installed.

Cc: <stable@vger.kernel.org>
Fixes: f81ef4a920c8 ("ARM: 6356/1: hw-breakpoint: add ARM backend for the hw-breakpoint framework")
Reported-by: Luis Machado <luis.machado@linaro.org>
Tested-by: Luis Machado <luis.machado@linaro.org>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm/kernel/hw_breakpoint.c |   27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

--- a/arch/arm/kernel/hw_breakpoint.c
+++ b/arch/arm/kernel/hw_breakpoint.c
@@ -683,6 +683,12 @@ static void disable_single_step(struct p
 	arch_install_hw_breakpoint(bp);
 }
 
+static int watchpoint_fault_on_uaccess(struct pt_regs *regs,
+				       struct arch_hw_breakpoint *info)
+{
+	return !user_mode(regs) && info->ctrl.privilege == ARM_BREAKPOINT_USER;
+}
+
 static void watchpoint_handler(unsigned long addr, unsigned int fsr,
 			       struct pt_regs *regs)
 {
@@ -742,16 +748,27 @@ static void watchpoint_handler(unsigned
 		}
 
 		pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
+
+		/*
+		 * If we triggered a user watchpoint from a uaccess routine,
+		 * then handle the stepping ourselves since userspace really
+		 * can't help us with this.
+		 */
+		if (watchpoint_fault_on_uaccess(regs, info))
+			goto step;
+
 		perf_bp_event(wp, regs);
 
 		/*
-		 * If no overflow handler is present, insert a temporary
-		 * mismatch breakpoint so we can single-step over the
-		 * watchpoint trigger.
+		 * Defer stepping to the overflow handler if one is installed.
+		 * Otherwise, insert a temporary mismatch breakpoint so that
+		 * we can single-step over the watchpoint trigger.
 		 */
-		if (is_default_overflow_handler(wp))
-			enable_single_step(wp, instruction_pointer(regs));
+		if (!is_default_overflow_handler(wp))
+			goto unlock;
 
+step:
+		enable_single_step(wp, instruction_pointer(regs));
 unlock:
 		rcu_read_unlock();
 	}



  parent reply	other threads:[~2020-08-03 12:57 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-03 12:17 [PATCH 5.7 000/120] 5.7.13-rc1 review Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 001/120] sunrpc: check that domain table is empty at module unload Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 002/120] PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 003/120] ALSA: usb-audio: Add implicit feedback quirk for SSL2 Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 004/120] ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G15(GA502) series with ALC289 Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 005/120] ALSA: hda/realtek: typo_fix: enable headset mic of ASUS ROG Zephyrus G14(GA401) " Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 006/120] ALSA: hda/realtek: Fix add a "ultra_low_power" function for intel reference board (alc256) Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 007/120] ALSA: hda/realtek - Fixed HP right speaker no sound Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 008/120] ALSA: hda: Workaround for spurious wakeups on some Intel platforms Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 009/120] ALSA: hda/hdmi: Fix keep_power assignment for non-component devices Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 010/120] RDMA/mlx5: Fix prefetch memory leak if get_prefetchable_mr fails Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 011/120] IB/rdmavt: Fix RQ counting issues causing use of an invalid RWQE Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 012/120] vhost/scsi: fix up req type endian-ness Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 013/120] 9p/trans_fd: Fix concurrency del of req_list in p9_fd_cancelled/p9_read_work Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 014/120] revert: 1320a4052ea1 ("audit: trigger accompanying records when no rules present") Greg Kroah-Hartman
2020-08-03 12:17 ` Greg Kroah-Hartman [this message]
2020-08-03 12:17 ` [PATCH 5.7 016/120] ARM: 8987/1: VDSO: Fix incorrect clock_gettime64 Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 017/120] ARM: dts: imx6sx-sabreauto: Fix the phy-mode on fec2 Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 018/120] ARM: dts: imx6sx-sdb: " Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 019/120] ARM: dts: imx6qdl-icore: Fix OTG_ID pin and sdcard detect Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 020/120] virtio_balloon: fix up endian-ness for free cmd id Greg Kroah-Hartman
2020-08-03 12:17 ` [PATCH 5.7 021/120] random32: update the net random state on interrupt and activity Greg Kroah-Hartman
2020-08-04  3:06   ` Willy Tarreau
2020-08-03 12:18 ` [PATCH 5.7 022/120] ARM: percpu.h: fix build error Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 023/120] Revert "drm/amdgpu: Fix NULL dereference in dpm sysfs handlers" Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 024/120] drm/amd/display: Clear dm_state for fast updates Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 025/120] drm/amdgpu: Prevent kernel-infoleak in amdgpu_info_ioctl() Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 026/120] drm/dbi: Fix SPI Type 1 (9-bit) transfer Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 027/120] drm/mcde: Fix stability issue Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 028/120] drm: hold gem reference until object is no longer accessed Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 029/120] drm: of: Fix double-free bug Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 030/120] random: fix circular include dependency on arm64 after addition of percpu.h Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 031/120] random32: remove net_rand_state from the latent entropy gcc plugin Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 032/120] rds: Prevent kernel-infoleak in rds_notify_queue_get() Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 033/120] libtraceevent: Fix build with binutils 2.35 Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 034/120] net/x25: Fix x25_neigh refcnt leak when x25 disconnect Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 035/120] net/x25: Fix null-ptr-deref in x25_disconnect Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 036/120] xfrm: policy: match with both mark and mask on user interfaces Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 037/120] ARM: dts sunxi: Relax a bit the CMA pool allocation range Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 038/120] pinctrl: qcom: Handle broken/missing PDC dual edge IRQs on sc7180 Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 039/120] espintcp: recv() should return 0 when the peer socket is closed Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 040/120] xfrm: Fix crash when the hold queue is used Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 041/120] ARM: dts: armada-38x: fix NETA lockup when repeatedly switching speeds Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 042/120] nvme-tcp: fix possible hang waiting for icresp response Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 043/120] selftests/net: rxtimestamp: fix clang issues for target arch PowerPC Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 044/120] selftests/net: psock_fanout: " Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 045/120] selftests/net: so_txtime: " Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 046/120] selftests/net: tcp_mmap: fix clang warning " Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 047/120] sh/tlb: Fix PGTABLE_LEVELS > 2 Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 048/120] sh: Fix validation of system call number Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 049/120] net: hns3: fix desc filling bug when skb is expanded or lineared Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 050/120] net: hns3: fix a TX timeout issue Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 051/120] net: hns3: add reset check for VF updating port based VLAN Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 052/120] net: hns3: fix aRFS FD rules leftover after add a user FD rule Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 053/120] net: hns3: fix for VLAN config when reset failed Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 054/120] net/mlx5: E-switch, Destroy TSAR when fail to enable the mode Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 055/120] net/mlx5: E-switch, Destroy TSAR after reload interface Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 056/120] net/mlx5e: Fix error path of device attach Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 057/120] net/mlx5: Fix a bug of using ptp channel index as pin index Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 058/120] net/mlx5: Verify Hardware supports requested ptp function on a given pin Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 059/120] net/mlx5: Query PPS pin operational status before registering it Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 060/120] net/mlx5e: Modify uplink state on interface up/down Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 061/120] net/mlx5e: Fix kernel crash when setting vf VLANID on a VF dev Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 062/120] net: lan78xx: add missing endpoint sanity check Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 063/120] net: lan78xx: fix transfer-buffer memory leak Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 064/120] rhashtable: Fix unprotected RCU dereference in __rht_ptr Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 065/120] mlx4: disable device on shutdown Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 066/120] octeontx2-pf: Fix reset_task bugs Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 067/120] octeontx2-pf: cancel reset_task work Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 068/120] octeontx2-pf: Unregister netdev at driver remove Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 069/120] bareudp: forbid mixing IP and MPLS in multiproto mode Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 070/120] nvme: add a Identify Namespace Identification Descriptor list quirk Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 071/120] mlxsw: core: Increase scope of RCU read-side critical section Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 072/120] mlxsw: core: Free EMAD transactions using kfree_rcu() Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 073/120] mlxsw: spectrum_router: Fix use-after-free in router init / de-init Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 074/120] selftests: ethtool: Fix test when only two speeds are supported Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 075/120] ibmvnic: Fix IRQ mapping disposal in error path Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 076/120] bpf: Fix map leak in HASH_OF_MAPS map Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 077/120] espintcp: handle short messages instead of breaking the encap socket Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 078/120] mac80211: mesh: Free ie data when leaving mesh Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 079/120] mac80211: mesh: Free pending skb when destroying a mpath Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 080/120] RDMA/core: Stop DIM before destroying CQ Greg Kroah-Hartman
2020-08-03 12:18 ` [PATCH 5.7 081/120] RDMA/core: Free DIM memory in error unwind Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 082/120] arm64/alternatives: move length validation inside the subsection Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 083/120] arm64: csum: Fix handling of bad packets Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 084/120] Bluetooth: fix kernel oops in store_pending_adv_report Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 085/120] selftests/bpf: fix netdevsim trap_flow_action_cookie read Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 086/120] net: nixge: fix potential memory leak in nixge_probe() Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 087/120] net: ethernet: mtk_eth_soc: fix MTU warnings Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 088/120] ionic: unlock queue mutex in error path Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 089/120] net: gemini: Fix missing clk_disable_unprepare() in error path of gemini_ethernet_port_probe() Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 090/120] net/mlx5e: E-Switch, Add misc bit when misc fields changed for mirroring Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 091/120] net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 092/120] perf tools: Fix record failure when mixed with ARM SPE event Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 093/120] vxlan: fix memleak of fdb Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 094/120] mt76: mt7615: fix lmac queue debugsfs entry Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 095/120] iwlwifi: fix crash in iwl_dbg_tlv_alloc_trigger Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 096/120] usb: hso: Fix debug compile warning on sparc32 Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 097/120] selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 098/120] qed: Disable "MFW indication via attention" SPAM every 5 minutes Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 099/120] selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 100/120] io_uring: always allow drain/link/hardlink/async sqe flags Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 101/120] habanalabs: prevent possible out-of-bounds array access Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 102/120] nfc: s3fwrn5: add missing release on skb in s3fwrn5_recv_frame Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 103/120] scsi: core: Run queue in case of I/O resource contention failure Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 104/120] riscv: kasan: use local_tlb_flush_all() to avoid uninitialized __sbi_rfence Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 105/120] parisc: add support for cmpxchg on u8 pointers Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 106/120] net: ethernet: ravb: exit if re-initialization fails in tx timeout Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 107/120] selftest: txtimestamp: fix net ns entry logic Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 108/120] Revert "i2c: cadence: Fix the hold bit setting" Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 109/120] i2c: cadence: Clear HOLD bit at correct time in Rx path Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 110/120] x86/unwind/orc: Fix ORC for newly forked tasks Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 111/120] x86/stacktrace: Fix reliable check for empty user task stacks Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 112/120] cxgb4: add missing release on skb in uld_send() Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 113/120] xen-netfront: fix potential deadlock in xennet_remove() Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 114/120] RISC-V: Set maximum number of mapped pages correctly Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 115/120] drivers/net/wan: lapb: Corrected the usage of skb_cow Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 116/120] riscv: Parse all memory blocks to remove unusable memory Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 117/120] KVM: arm64: Dont inherit exec permission across page-table levels Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 118/120] KVM: LAPIC: Prevent setting the tscdeadline timer if the lapic is hw disabled Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 119/120] KVM: SVM: Fix disable pause loop exit/pause filtering capability on SVM Greg Kroah-Hartman
2020-08-03 12:19 ` [PATCH 5.7 120/120] x86/i8259: Use printk_deferred() to prevent deadlock Greg Kroah-Hartman
2020-08-03 15:58 ` [PATCH 5.7 000/120] 5.7.13-rc1 review Guenter Roeck
2020-08-03 17:33   ` Greg Kroah-Hartman
2020-08-03 20:33     ` Geert Uytterhoeven
2020-08-04  3:01       ` Guenter Roeck
2020-08-04  3:09         ` Willy Tarreau
2020-08-04  3:12         ` Linus Torvalds
2020-08-04  4:14           ` Guenter Roeck
2020-08-04  5:58           ` Guenter Roeck
2020-08-04  6:11             ` Greg Kroah-Hartman
2020-08-04  6:33             ` Linus Torvalds
2020-08-04  6:52               ` Greg Kroah-Hartman
2020-08-04  0:26     ` Guenter Roeck

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=20200803121903.602176967@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luis.machado@linaro.org \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=stable@vger.kernel.org \
    --cc=will@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;
as well as URLs for NNTP newsgroup(s).