From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Mike Christie <mchristi@redhat.com>,
Bodo Stroesser <bstroesser@ts.fujitsu.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.19 098/206] scsi: target: tcmu: Userspace must not complete queued commands
Date: Tue, 23 Jun 2020 21:57:06 +0200 [thread overview]
Message-ID: <20200623195321.763673881@linuxfoundation.org> (raw)
In-Reply-To: <20200623195316.864547658@linuxfoundation.org>
From: Bodo Stroesser <bstroesser@ts.fujitsu.com>
[ Upstream commit 61fb2482216679b9e1e797440c148bb143a5040a ]
When tcmu queues a new command - no matter whether in command ring or in
qfull_queue - a cmd_id from IDR udev->commands is assigned to the command.
If userspace sends a wrong command completion containing the cmd_id of a
command on the qfull_queue, tcmu_handle_completions() finds the command in
the IDR and calls tcmu_handle_completion() for it. This might do some nasty
things because commands in qfull_queue do not have a valid dbi list.
To fix this bug, we no longer add queued commands to the idr. Instead the
cmd_id is assign when a command is written to the command ring.
Due to this change I had to adapt the source code at several places where
up to now an idr_for_each had been done.
[mkp: fix checkpatch warnings]
Link: https://lore.kernel.org/r/20200518164833.12775-1-bstroesser@ts.fujitsu.com
Acked-by: Mike Christie <mchristi@redhat.com>
Signed-off-by: Bodo Stroesser <bstroesser@ts.fujitsu.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/target/target_core_user.c | 154 ++++++++++++++----------------
1 file changed, 71 insertions(+), 83 deletions(-)
diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c
index eff1e36ca03c2..ac523f247a9ca 100644
--- a/drivers/target/target_core_user.c
+++ b/drivers/target/target_core_user.c
@@ -893,41 +893,24 @@ static inline size_t tcmu_cmd_get_cmd_size(struct tcmu_cmd *tcmu_cmd,
return command_size;
}
-static int tcmu_setup_cmd_timer(struct tcmu_cmd *tcmu_cmd, unsigned int tmo,
- struct timer_list *timer)
+static void tcmu_setup_cmd_timer(struct tcmu_cmd *tcmu_cmd, unsigned int tmo,
+ struct timer_list *timer)
{
- struct tcmu_dev *udev = tcmu_cmd->tcmu_dev;
- int cmd_id;
-
- if (tcmu_cmd->cmd_id)
- goto setup_timer;
-
- cmd_id = idr_alloc(&udev->commands, tcmu_cmd, 1, USHRT_MAX, GFP_NOWAIT);
- if (cmd_id < 0) {
- pr_err("tcmu: Could not allocate cmd id.\n");
- return cmd_id;
- }
- tcmu_cmd->cmd_id = cmd_id;
-
- pr_debug("allocated cmd %u for dev %s tmo %lu\n", tcmu_cmd->cmd_id,
- udev->name, tmo / MSEC_PER_SEC);
-
-setup_timer:
if (!tmo)
- return 0;
+ return;
tcmu_cmd->deadline = round_jiffies_up(jiffies + msecs_to_jiffies(tmo));
if (!timer_pending(timer))
mod_timer(timer, tcmu_cmd->deadline);
- return 0;
+ pr_debug("Timeout set up for cmd %p, dev = %s, tmo = %lu\n", tcmu_cmd,
+ tcmu_cmd->tcmu_dev->name, tmo / MSEC_PER_SEC);
}
static int add_to_qfull_queue(struct tcmu_cmd *tcmu_cmd)
{
struct tcmu_dev *udev = tcmu_cmd->tcmu_dev;
unsigned int tmo;
- int ret;
/*
* For backwards compat if qfull_time_out is not set use
@@ -942,13 +925,11 @@ static int add_to_qfull_queue(struct tcmu_cmd *tcmu_cmd)
else
tmo = TCMU_TIME_OUT;
- ret = tcmu_setup_cmd_timer(tcmu_cmd, tmo, &udev->qfull_timer);
- if (ret)
- return ret;
+ tcmu_setup_cmd_timer(tcmu_cmd, tmo, &udev->qfull_timer);
list_add_tail(&tcmu_cmd->queue_entry, &udev->qfull_queue);
- pr_debug("adding cmd %u on dev %s to ring space wait queue\n",
- tcmu_cmd->cmd_id, udev->name);
+ pr_debug("adding cmd %p on dev %s to ring space wait queue\n",
+ tcmu_cmd, udev->name);
return 0;
}
@@ -970,7 +951,7 @@ static int queue_cmd_ring(struct tcmu_cmd *tcmu_cmd, sense_reason_t *scsi_err)
struct tcmu_mailbox *mb;
struct tcmu_cmd_entry *entry;
struct iovec *iov;
- int iov_cnt, ret;
+ int iov_cnt, cmd_id;
uint32_t cmd_head;
uint64_t cdb_off;
bool copy_to_data_area;
@@ -1071,14 +1052,21 @@ static int queue_cmd_ring(struct tcmu_cmd *tcmu_cmd, sense_reason_t *scsi_err)
}
entry->req.iov_bidi_cnt = iov_cnt;
- ret = tcmu_setup_cmd_timer(tcmu_cmd, udev->cmd_time_out,
- &udev->cmd_timer);
- if (ret) {
- tcmu_cmd_free_data(tcmu_cmd, tcmu_cmd->dbi_cnt);
+ cmd_id = idr_alloc(&udev->commands, tcmu_cmd, 1, USHRT_MAX, GFP_NOWAIT);
+ if (cmd_id < 0) {
+ pr_err("tcmu: Could not allocate cmd id.\n");
+ tcmu_cmd_free_data(tcmu_cmd, tcmu_cmd->dbi_cnt);
*scsi_err = TCM_OUT_OF_RESOURCES;
return -1;
}
+ tcmu_cmd->cmd_id = cmd_id;
+
+ pr_debug("allocated cmd id %u for cmd %p dev %s\n", tcmu_cmd->cmd_id,
+ tcmu_cmd, udev->name);
+
+ tcmu_setup_cmd_timer(tcmu_cmd, udev->cmd_time_out, &udev->cmd_timer);
+
entry->hdr.cmd_id = tcmu_cmd->cmd_id;
/*
@@ -1290,50 +1278,39 @@ static unsigned int tcmu_handle_completions(struct tcmu_dev *udev)
return handled;
}
-static int tcmu_check_expired_cmd(int id, void *p, void *data)
+static void tcmu_check_expired_ring_cmd(struct tcmu_cmd *cmd)
{
- struct tcmu_cmd *cmd = p;
- struct tcmu_dev *udev = cmd->tcmu_dev;
- u8 scsi_status;
struct se_cmd *se_cmd;
- bool is_running;
-
- if (test_bit(TCMU_CMD_BIT_EXPIRED, &cmd->flags))
- return 0;
if (!time_after(jiffies, cmd->deadline))
- return 0;
+ return;
- is_running = test_bit(TCMU_CMD_BIT_INFLIGHT, &cmd->flags);
+ set_bit(TCMU_CMD_BIT_EXPIRED, &cmd->flags);
+ list_del_init(&cmd->queue_entry);
se_cmd = cmd->se_cmd;
+ cmd->se_cmd = NULL;
- if (is_running) {
- /*
- * If cmd_time_out is disabled but qfull is set deadline
- * will only reflect the qfull timeout. Ignore it.
- */
- if (!udev->cmd_time_out)
- return 0;
+ pr_debug("Timing out inflight cmd %u on dev %s.\n",
+ cmd->cmd_id, cmd->tcmu_dev->name);
- set_bit(TCMU_CMD_BIT_EXPIRED, &cmd->flags);
- /*
- * target_complete_cmd will translate this to LUN COMM FAILURE
- */
- scsi_status = SAM_STAT_CHECK_CONDITION;
- list_del_init(&cmd->queue_entry);
- cmd->se_cmd = NULL;
- } else {
- list_del_init(&cmd->queue_entry);
- idr_remove(&udev->commands, id);
- tcmu_free_cmd(cmd);
- scsi_status = SAM_STAT_TASK_SET_FULL;
- }
+ target_complete_cmd(se_cmd, SAM_STAT_CHECK_CONDITION);
+}
- pr_debug("Timing out cmd %u on dev %s that is %s.\n",
- id, udev->name, is_running ? "inflight" : "queued");
+static void tcmu_check_expired_queue_cmd(struct tcmu_cmd *cmd)
+{
+ struct se_cmd *se_cmd;
- target_complete_cmd(se_cmd, scsi_status);
- return 0;
+ if (!time_after(jiffies, cmd->deadline))
+ return;
+
+ list_del_init(&cmd->queue_entry);
+ se_cmd = cmd->se_cmd;
+ tcmu_free_cmd(cmd);
+
+ pr_debug("Timing out queued cmd %p on dev %s.\n",
+ cmd, cmd->tcmu_dev->name);
+
+ target_complete_cmd(se_cmd, SAM_STAT_TASK_SET_FULL);
}
static void tcmu_device_timedout(struct tcmu_dev *udev)
@@ -1418,16 +1395,15 @@ static struct se_device *tcmu_alloc_device(struct se_hba *hba, const char *name)
return &udev->se_dev;
}
-static bool run_qfull_queue(struct tcmu_dev *udev, bool fail)
+static void run_qfull_queue(struct tcmu_dev *udev, bool fail)
{
struct tcmu_cmd *tcmu_cmd, *tmp_cmd;
LIST_HEAD(cmds);
- bool drained = true;
sense_reason_t scsi_ret;
int ret;
if (list_empty(&udev->qfull_queue))
- return true;
+ return;
pr_debug("running %s's cmdr queue forcefail %d\n", udev->name, fail);
@@ -1436,11 +1412,10 @@ static bool run_qfull_queue(struct tcmu_dev *udev, bool fail)
list_for_each_entry_safe(tcmu_cmd, tmp_cmd, &cmds, queue_entry) {
list_del_init(&tcmu_cmd->queue_entry);
- pr_debug("removing cmd %u on dev %s from queue\n",
- tcmu_cmd->cmd_id, udev->name);
+ pr_debug("removing cmd %p on dev %s from queue\n",
+ tcmu_cmd, udev->name);
if (fail) {
- idr_remove(&udev->commands, tcmu_cmd->cmd_id);
/*
* We were not able to even start the command, so
* fail with busy to allow a retry in case runner
@@ -1455,10 +1430,8 @@ static bool run_qfull_queue(struct tcmu_dev *udev, bool fail)
ret = queue_cmd_ring(tcmu_cmd, &scsi_ret);
if (ret < 0) {
- pr_debug("cmd %u on dev %s failed with %u\n",
- tcmu_cmd->cmd_id, udev->name, scsi_ret);
-
- idr_remove(&udev->commands, tcmu_cmd->cmd_id);
+ pr_debug("cmd %p on dev %s failed with %u\n",
+ tcmu_cmd, udev->name, scsi_ret);
/*
* Ignore scsi_ret for now. target_complete_cmd
* drops it.
@@ -1473,13 +1446,11 @@ static bool run_qfull_queue(struct tcmu_dev *udev, bool fail)
* the queue
*/
list_splice_tail(&cmds, &udev->qfull_queue);
- drained = false;
break;
}
}
tcmu_set_next_deadline(&udev->qfull_queue, &udev->qfull_timer);
- return drained;
}
static int tcmu_irqcontrol(struct uio_info *info, s32 irq_on)
@@ -1663,6 +1634,8 @@ static void tcmu_dev_kref_release(struct kref *kref)
if (tcmu_check_and_free_pending_cmd(cmd) != 0)
all_expired = false;
}
+ if (!list_empty(&udev->qfull_queue))
+ all_expired = false;
idr_destroy(&udev->commands);
WARN_ON(!all_expired);
@@ -2031,9 +2004,6 @@ static void tcmu_reset_ring(struct tcmu_dev *udev, u8 err_level)
mutex_lock(&udev->cmdr_lock);
idr_for_each_entry(&udev->commands, cmd, i) {
- if (!test_bit(TCMU_CMD_BIT_INFLIGHT, &cmd->flags))
- continue;
-
pr_debug("removing cmd %u on dev %s from ring (is expired %d)\n",
cmd->cmd_id, udev->name,
test_bit(TCMU_CMD_BIT_EXPIRED, &cmd->flags));
@@ -2071,6 +2041,8 @@ static void tcmu_reset_ring(struct tcmu_dev *udev, u8 err_level)
del_timer(&udev->cmd_timer);
+ run_qfull_queue(udev, false);
+
mutex_unlock(&udev->cmdr_lock);
}
@@ -2692,6 +2664,7 @@ static void find_free_blocks(void)
static void check_timedout_devices(void)
{
struct tcmu_dev *udev, *tmp_dev;
+ struct tcmu_cmd *cmd, *tmp_cmd;
LIST_HEAD(devs);
spin_lock_bh(&timed_out_udevs_lock);
@@ -2702,9 +2675,24 @@ static void check_timedout_devices(void)
spin_unlock_bh(&timed_out_udevs_lock);
mutex_lock(&udev->cmdr_lock);
- idr_for_each(&udev->commands, tcmu_check_expired_cmd, NULL);
- tcmu_set_next_deadline(&udev->inflight_queue, &udev->cmd_timer);
+ /*
+ * If cmd_time_out is disabled but qfull is set deadline
+ * will only reflect the qfull timeout. Ignore it.
+ */
+ if (udev->cmd_time_out) {
+ list_for_each_entry_safe(cmd, tmp_cmd,
+ &udev->inflight_queue,
+ queue_entry) {
+ tcmu_check_expired_ring_cmd(cmd);
+ }
+ tcmu_set_next_deadline(&udev->inflight_queue,
+ &udev->cmd_timer);
+ }
+ list_for_each_entry_safe(cmd, tmp_cmd, &udev->qfull_queue,
+ queue_entry) {
+ tcmu_check_expired_queue_cmd(cmd);
+ }
tcmu_set_next_deadline(&udev->qfull_queue, &udev->qfull_timer);
mutex_unlock(&udev->cmdr_lock);
--
2.25.1
next prev parent reply other threads:[~2020-06-23 21:00 UTC|newest]
Thread overview: 234+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-23 19:55 [PATCH 4.19 000/206] 4.19.130-rc1 review Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 001/206] power: supply: bq24257_charger: Replace depends on REGMAP_I2C with select Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 002/206] clk: sunxi: Fix incorrect usage of round_down() Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 003/206] ASoC: tegra: tegra_wm8903: Support nvidia, headset property Greg Kroah-Hartman
2020-06-25 19:01 ` Pavel Machek
2020-06-25 19:45 ` Mark Brown
2020-06-26 12:47 ` Pavel Machek
2020-06-26 13:17 ` Mark Brown
2020-06-23 19:55 ` [PATCH 4.19 004/206] i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 005/206] iio: pressure: bmp280: Tolerate IRQ before registering Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 006/206] remoteproc: Fix IDR initialisation in rproc_alloc() Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 007/206] clk: qcom: msm8916: Fix the address location of pll->config_reg Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 008/206] backlight: lp855x: Ensure regulators are disabled on probe failure Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 009/206] ASoC: davinci-mcasp: Fix dma_chan refcnt leak when getting dma type Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 010/206] ARM: integrator: Add some Kconfig selections Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 011/206] scsi: qedi: Check for buffer overflow in qedi_set_path() Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 012/206] ALSA: hda/realtek - Introduce polarity for micmute LED GPIO Greg Kroah-Hartman
2020-06-25 19:02 ` Pavel Machek
2020-06-26 19:30 ` Sasha Levin
2020-06-23 19:55 ` [PATCH 4.19 013/206] ALSA: isa/wavefront: prevent out of bounds write in ioctl Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 014/206] PCI: Allow pci_resize_resource() for devices on root bus Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 015/206] scsi: qla2xxx: Fix issue with adapters stopping state Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 016/206] iio: bmp280: fix compensation of humidity Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 017/206] f2fs: report delalloc reserve as non-free in statfs for project quota Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 018/206] i2c: pxa: clear all master action bits in i2c_pxa_stop_message() Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 019/206] clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 020/206] usblp: poison URBs upon disconnect Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 021/206] serial: 8250: Fix max baud limit in generic 8250 port Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 022/206] dm mpath: switch paths in dm_blk_ioctl() code path Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 023/206] PCI: aardvark: Dont blindly enable ASPM L0s and dont write to read-only register Greg Kroah-Hartman
2020-06-26 12:53 ` Pavel Machek
2020-06-26 13:23 ` Pali Rohár
2020-06-26 13:41 ` Pavel Machek
2020-06-23 19:55 ` [PATCH 4.19 024/206] ps3disk: use the default segment boundary Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 025/206] vfio/pci: fix memory leaks in alloc_perm_bits() Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 026/206] RDMA/mlx5: Add init2init as a modify command Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 027/206] m68k/PCI: Fix a memory leak in an error handling path Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 028/206] gpio: dwapb: Call acpi_gpiochip_free_interrupts() on GPIO chip de-registration Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 029/206] mfd: wm8994: Fix driver operation if loaded as modules Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 030/206] scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event Greg Kroah-Hartman
2020-06-23 19:55 ` [PATCH 4.19 031/206] clk: clk-flexgen: fix clock-critical handling Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 032/206] powerpc/perf/hv-24x7: Fix inconsistent output values incase multiple hv-24x7 events run Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 033/206] nfsd: Fix svc_xprt refcnt leak when setup callback client failed Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 034/206] PCI: vmd: Filter resource type bits from shadow register Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 035/206] powerpc/crashkernel: Take "mem=" option into account Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 036/206] pwm: img: Call pm_runtime_put() in pm_runtime_get_sync() failed case Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 037/206] yam: fix possible memory leak in yam_init_driver Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 038/206] NTB: ntb_pingpong: Choose doorbells based on port number Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 039/206] NTB: Fix the default port and peer numbers for legacy drivers Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 040/206] mksysmap: Fix the mismatch of .L symbols in System.map Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 041/206] apparmor: fix introspection of of task mode for unconfined tasks Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 042/206] apparmor: check/put label on apparmor_sk_clone_security() Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 043/206] ASoC: meson: add missing free_irq() in error path Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 044/206] scsi: sr: Fix sr_probe() missing deallocate of device minor Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 045/206] scsi: ibmvscsi: Dont send host info in adapter info MAD after LPM Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 046/206] apparmor: fix nnp subset test for unconfined Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 047/206] x86/purgatory: Disable various profiling and sanitizing options Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 048/206] staging: greybus: fix a missing-check bug in gb_lights_light_config() Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 049/206] staging: rtl8712: fix multiline derefernce warnings Greg Kroah-Hartman
2020-06-23 22:09 ` Joe Perches
2020-06-24 0:52 ` Sasha Levin
2020-06-23 19:56 ` [PATCH 4.19 050/206] arm64: dts: mt8173: fix unit name warnings Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 051/206] scsi: qedi: Do not flush offload work if ARP not resolved Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 052/206] ARM: dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 053/206] gpio: dwapb: Append MODULE_ALIAS for platform driver Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 054/206] scsi: qedf: Fix crash when MFW calls for protocol stats while function is still probing Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 055/206] pinctrl: rza1: Fix wrong array assignment of rza1l_swio_entries Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 056/206] firmware: qcom_scm: fix bogous abuse of dma-direct internals Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 057/206] staging: gasket: Fix mapping refcnt leak when put attribute fails Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 058/206] staging: gasket: Fix mapping refcnt leak when register/store fails Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 059/206] ALSA: usb-audio: Improve frames size computation Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 060/206] ALSA: usb-audio: Fix racy list management in output queue Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 061/206] Input: mms114 - add extra compatible for mms345l Greg Kroah-Hartman
2020-06-23 21:09 ` Pavel Machek
2020-06-24 0:53 ` Sasha Levin
2020-06-23 19:56 ` [PATCH 4.19 062/206] s390/qdio: put thinint indicator after early error Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 063/206] tty: hvc: Fix data abort due to race in hvc_open Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 064/206] slimbus: ngd: get drvdata from correct device Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 065/206] thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 066/206] soundwire: slave: dont init debugfs on device registration error Greg Kroah-Hartman
2020-06-23 21:11 ` Pavel Machek
2020-06-24 0:55 ` Sasha Levin
2020-06-23 19:56 ` [PATCH 4.19 067/206] usb: dwc3: gadget: Properly handle failed kick_transfer Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 068/206] staging: sm750fb: add missing case while setting FB_VISUAL Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 069/206] PCI: v3-semi: Fix a memory leak in v3_pci_probe() error handling paths Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 070/206] i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 071/206] serial: amba-pl011: Make sure we initialize the port.lock spinlock Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 072/206] drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a driver developer is foolish Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 073/206] PCI: rcar: Fix incorrect programming of OB windows Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 074/206] PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 075/206] scsi: qla2xxx: Fix warning after FC target reset Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 076/206] power: supply: lp8788: Fix an error handling path in lp8788_charger_probe() Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 077/206] power: supply: smb347-charger: IRQSTAT_D is volatile Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 078/206] scsi: mpt3sas: Fix double free warnings Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 079/206] pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 080/206] dlm: remove BUG() before panic() Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 081/206] clk: ti: composite: fix memory leak Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 082/206] PCI: Fix pci_register_host_bridge() device_register() error handling Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 083/206] powerpc/64: Dont initialise init_task->thread.regs Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 084/206] tty: n_gsm: Fix SOF skipping Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 085/206] tty: n_gsm: Fix waking up upper tty layer when room available Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 086/206] HID: Add quirks for Trust Panora Graphic Tablet Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 087/206] ipmi: use vzalloc instead of kmalloc for user creation Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 088/206] powerpc/pseries/ras: Fix FWNMI_VALID off by one Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 089/206] powerpc/ps3: Fix kexec shutdown hang Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 090/206] vfio-pci: Mask cap zero Greg Kroah-Hartman
2020-06-23 19:56 ` [PATCH 4.19 091/206] usb/ohci-platform: Fix a warning when hibernating Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 092/206] drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms allocation Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 093/206] ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT8-A tablet Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 094/206] USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe() Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 095/206] tty: n_gsm: Fix bogus i++ in gsm_data_kick Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 096/206] fpga: dfl: afu: Corrected error handling levels Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 097/206] clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1 Greg Kroah-Hartman
2020-06-23 19:57 ` Greg Kroah-Hartman [this message]
2020-06-23 19:57 ` [PATCH 4.19 099/206] arm64: tegra: Fix ethernet phy-mode for Jetson Xavier Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 100/206] powerpc/64s/pgtable: fix an undefined behaviour Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 101/206] dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 102/206] PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 103/206] PCI: dwc: Fix inner MSI IRQ domain registration Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 104/206] IB/cma: Fix ports memory leak in cma_configfs Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 105/206] watchdog: da9062: No need to ping manually before setting timeout Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 106/206] usb: dwc2: gadget: move gadget resume after the core is in L0 state Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 107/206] USB: gadget: udc: s3c2410_udc: Remove pointless NULL check in s3c2410_udc_nuke Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 108/206] usb: gadget: lpc32xx_udc: dont dereference ep pointer before null check Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 109/206] usb: gadget: fix potential double-free in m66592_probe Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 110/206] usb: gadget: Fix issue with config_ep_by_speed function Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 111/206] RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 112/206] x86/apic: Make TSC deadline timer detection message visible Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 113/206] ASoC: fix incomplete error-handling in img_i2s_in_probe Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 114/206] scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd() Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 115/206] clk: bcm2835: Fix return type of bcm2835_register_gate Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 116/206] scsi: ufs-qcom: Fix scheduling while atomic issue Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 117/206] KVM: PPC: Book3S HV: Ignore kmemleak false positives Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 118/206] clk: sprd: return correct type of value for _sprd_pll_recalc_rate Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 119/206] net: sunrpc: Fix off-by-one issues in rpc_ntop6 Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 120/206] NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 121/206] of: Fix a refcounting bug in __of_attach_node_sysfs() Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 122/206] powerpc/4xx: Dont unmap NULL mbase Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 123/206] extcon: adc-jack: Fix an error handling path in adc_jack_probe() Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 124/206] ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 125/206] vfio/mdev: Fix reference count leak in add_mdev_supported_type Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 126/206] rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 127/206] openrisc: Fix issue with argument clobbering for clone/fork Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 128/206] gfs2: Allow lock_nolock mount to specify jid=X Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 129/206] scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 130/206] scsi: ufs: Dont update urgent bkops level when toggling auto bkops Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 131/206] pinctrl: imxl: Fix an error handling path in imx1_pinctrl_core_probe() Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 132/206] pinctrl: freescale: imx: Fix an error handling path in imx_pinctrl_probe() Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 133/206] crypto: omap-sham - add proper load balancing support for multicore Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 134/206] geneve: change from tx_error to tx_dropped on missing metadata Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 135/206] lib/zlib: remove outdated and incorrect pre-increment optimization Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 136/206] include/linux/bitops.h: avoid clang shift-count-overflow warnings Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 137/206] elfnote: mark all .note sections SHF_ALLOC Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 138/206] selftests/vm/pkeys: fix alloc_random_pkey() to make it really random Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 139/206] blktrace: use errno instead of bi_status Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 140/206] blktrace: fix endianness in get_pdu_int() Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 141/206] blktrace: fix endianness for blk_log_remap() Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 142/206] gfs2: fix use-after-free on transaction ail lists Greg Kroah-Hartman
2020-09-10 19:43 ` Salvatore Bonaccorso
2020-09-11 11:58 ` Greg Kroah-Hartman
2020-09-11 12:08 ` Bob Peterson
2020-09-11 12:20 ` Greg Kroah-Hartman
2020-09-11 12:49 ` Bob Peterson
2020-09-11 13:14 ` Salvatore Bonaccorso
2020-09-12 6:47 ` Salvatore Bonaccorso
2020-09-15 16:52 ` Bob Peterson
2020-09-17 14:45 ` Greg Kroah-Hartman
2020-09-11 12:08 ` Salvatore Bonaccorso
2020-09-11 12:12 ` Andreas Gruenbacher
2020-06-23 19:57 ` [PATCH 4.19 143/206] ntb_perf: pass correct struct device to dma_alloc_coherent Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 144/206] ntb_tool: " Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 145/206] NTB: ntb_tool: reading the link file should not end in a NULL byte Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 146/206] NTB: Revert the change to use the NTB device dev for DMA allocations Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 147/206] NTB: perf: Dont require one more memory window than number of peers Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 148/206] NTB: perf: Fix support for hardware that doesnt have port numbers Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 149/206] NTB: perf: Fix race condition when run with ntb_test Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 150/206] NTB: ntb_test: Fix bug when counting remote files Greg Kroah-Hartman
2020-06-23 19:57 ` [PATCH 4.19 151/206] drivers/perf: hisi: Fix wrong value for all counters enable Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 152/206] selftests/net: in timestamping, strncpy needs to preserve null byte Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 153/206] afs: Fix memory leak in afs_put_sysnames() Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 154/206] ASoC: core: only convert non DPCM link to DPCM link Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 155/206] ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT10-A tablet Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 156/206] ASoC: rt5645: Add platform-data for Asus T101HA Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 157/206] drm/sun4i: hdmi ddc clk: Fix size of m divider Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 158/206] scsi: acornscsi: Fix an error handling path in acornscsi_probe() Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 159/206] x86/idt: Keep spurious entries unset in system_vectors Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 160/206] net/filter: Permit reading NET in load_bytes_relative when MAC not set Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 161/206] xdp: Fix xsk_generic_xmit errno Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 162/206] usb/xhci-plat: Set PM runtime as active on resume Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 163/206] usb: host: ehci-platform: add a quirk to avoid stuck Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 164/206] usb/ehci-platform: Set PM runtime as active on resume Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 165/206] perf report: Fix NULL pointer dereference in hists__fprintf_nr_sample_events() Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 166/206] ext4: stop overwrite the errcode in ext4_setup_super Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 167/206] bcache: fix potential deadlock problem in btree_gc_coalesce Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 168/206] afs: Fix non-setting of mtime when writing into mmap Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 169/206] afs: afs_write_end() should change i_size under the right lock Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 170/206] block: Fix use-after-free in blkdev_get() Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 171/206] arm64: hw_breakpoint: Dont invoke overflow handler on uaccess watchpoints Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 172/206] libata: Use per port sync for detach Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 173/206] drm: encoder_slave: fix refcouting error for modules Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 174/206] drm/dp_mst: Reformat drm_dp_check_act_status() a bit Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 175/206] drm/qxl: Use correct notify port address when creating cursor ring Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 176/206] drm/amdgpu: Replace invalid device ID with a valid device ID Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 177/206] selinux: fix double free Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 178/206] ext4: fix partial cluster initialization when splitting extent Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 179/206] ext4: avoid race conditions when remounting with options that change dax Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 180/206] drm/dp_mst: Increase ACT retry timeout to 3s Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 181/206] x86/boot/compressed: Relax sed symbol type regex for LLVM ld.lld Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 182/206] block: nr_sects_write(): Disable preemption on seqcount write Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 183/206] mtd: rawnand: Pass a nand_chip object to nand_scan() Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 184/206] mtd: rawnand: Pass a nand_chip object to nand_release() Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 185/206] mtd: rawnand: diskonchip: Fix the probe error path Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 186/206] mtd: rawnand: sharpsl: " Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 187/206] mtd: rawnand: xway: " Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 188/206] mtd: rawnand: orion: " Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 189/206] mtd: rawnand: oxnas: Add of_node_put() Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 190/206] mtd: rawnand: oxnas: Fix the probe error path Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 191/206] mtd: rawnand: socrates: " Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 192/206] mtd: rawnand: plat_nand: " Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 193/206] mtd: rawnand: mtk: " Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 194/206] mtd: rawnand: tmio: " Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 195/206] s390: fix syscall_get_error for compat processes Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 196/206] drm/i915: Whitelist context-local timestamp in the gen9 cmdparser Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 197/206] drm/i915/icl+: Fix hotplug interrupt disabling after storm detection Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 198/206] crypto: algif_skcipher - Cap recv SG list at ctx->used Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 199/206] crypto: algboss - dont wait during notifier callback Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 200/206] kprobes: Fix to protect kick_kprobe_optimizer() by kprobe_mutex Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 201/206] e1000e: Do not wake up the system via WOL if device wakeup is disabled Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 202/206] net: octeon: mgmt: Repair filling of RX ring Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 203/206] kretprobe: Prevent triggering kretprobe from within kprobe_flush_task Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 204/206] sched/rt, net: Use CONFIG_PREEMPTION.patch Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 205/206] net: core: device_rename: Use rwsem instead of a seqcount Greg Kroah-Hartman
2020-06-23 19:58 ` [PATCH 4.19 206/206] Revert "dpaa_eth: fix usage as DSA master, try 3" Greg Kroah-Hartman
2020-06-24 21:59 ` [PATCH 4.19 000/206] 4.19.130-rc1 review Shuah Khan
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=20200623195321.763673881@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=bstroesser@ts.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=mchristi@redhat.com \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is 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).