linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Yu Chen <chenyu56@huawei.com>,
	John Stultz <john.stultz@linaro.org>, Li Jun <jun.li@nxp.com>,
	Felipe Balbi <balbi@kernel.org>, Sasha Levin <sashal@kernel.org>,
	linux-usb@vger.kernel.org, linux-omap@vger.kernel.org
Subject: [PATCH AUTOSEL 4.14 109/127] usb: dwc3: Increase timeout for CmdAct cleared by device controller
Date: Thu, 17 Sep 2020 22:12:02 -0400	[thread overview]
Message-ID: <20200918021220.2066485-109-sashal@kernel.org> (raw)
In-Reply-To: <20200918021220.2066485-1-sashal@kernel.org>

From: Yu Chen <chenyu56@huawei.com>

[ Upstream commit 1c0e69ae1b9f9004fd72978612ae3463791edc56 ]

If the SS PHY is in P3, there is no pipe_clk, HW may use suspend_clk
for function, as suspend_clk is slow so EP command need more time to
complete, e.g, imx8M suspend_clk is 32K, set ep configuration will
take about 380us per below trace time stamp(44.286278 - 44.285897
= 0.000381):

configfs_acm.sh-822   [000] d..1    44.285896: dwc3_writel: addr
000000006d59aae1 value 00000401
configfs_acm.sh-822   [000] d..1    44.285897: dwc3_readl: addr
000000006d59aae1 value 00000401
... ...
configfs_acm.sh-822   [000] d..1    44.286278: dwc3_readl: addr
000000006d59aae1 value 00000001
configfs_acm.sh-822   [000] d..1    44.286279: dwc3_gadget_ep_cmd:
ep0out: cmd 'Set Endpoint Configuration' [401] params 00001000
00000500 00000000 --> status: Successful

This was originally found on Hisilicon Kirin Soc that need more time
for the device controller to clear the CmdAct of DEPCMD.

Signed-off-by: Yu Chen <chenyu56@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Li Jun <jun.li@nxp.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/usb/dwc3/gadget.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 4149d751719e3..4a42368734644 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -276,7 +276,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd,
 {
 	const struct usb_endpoint_descriptor *desc = dep->endpoint.desc;
 	struct dwc3		*dwc = dep->dwc;
-	u32			timeout = 1000;
+	u32			timeout = 5000;
 	u32			saved_config = 0;
 	u32			reg;
 
-- 
2.25.1


  parent reply	other threads:[~2020-09-18  2:14 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-18  2:10 [PATCH AUTOSEL 4.14 001/127] mm: fix double page fault on arm64 if PTE_AF is cleared Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 002/127] scsi: aacraid: fix illegal IO beyond last LBA Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 003/127] m68k: q40: Fix info-leak in rtc_ioctl Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 004/127] gma/gma500: fix a memory disclosure bug due to uninitialized bytes Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 005/127] ASoC: kirkwood: fix IRQ error handling Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 006/127] media: smiapp: Fix error handling at NVM reading Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 007/127] ata: sata_mv, avoid trigerrable BUG_ON Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 008/127] PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 009/127] scsi: fnic: fix use after free Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 010/127] clk/ti/adpll: allocate room for terminating null Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 011/127] mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of cfi_amdstd_setup() Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 012/127] mfd: mfd-core: Protect against NULL call-back function pointer Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 013/127] USB: serial: mos7840: fix probe error handling Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 014/127] tracing: Adding NULL checks for trace_array descriptor pointer Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 015/127] bcache: fix a lost wake-up problem caused by mca_cannibalize_lock Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 016/127] RDMA/i40iw: Fix potential use after free Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 017/127] xfs: fix attr leaf header freemap.size underflow Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 018/127] RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()' Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 019/127] mmc: core: Fix size overflow for mmc partitions Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 020/127] gfs2: clean up iopen glock mess in gfs2_create_inode Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 021/127] debugfs: Fix !DEBUG_FS debugfs_create_automount Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 022/127] CIFS: Properly process SMB3 lease breaks Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 023/127] kernel/sys.c: avoid copying possible padding bytes in copy_to_user Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 024/127] neigh_stat_seq_next() should increase position index Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 025/127] rt_cpu_seq_next " Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 026/127] seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 027/127] media: ti-vpe: cal: Restrict DMA to avoid memory corruption Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 028/127] ACPI: EC: Reference count query handlers under lock Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 029/127] efi/arm: Defer probe of PCIe backed efifb on DT systems Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 030/127] dmaengine: zynqmp_dma: fix burst length configuration Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 031/127] powerpc/eeh: Only dump stack once if an MMIO loop is detected Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 032/127] tracing: Set kernel_stack's caller size properly Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 033/127] ext4: make dioread_nolock the default Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 034/127] ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 035/127] selftests/ftrace: fix glob selftest Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 036/127] tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 037/127] Bluetooth: Fix refcount use-after-free issue Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 038/127] mm: pagewalk: fix termination condition in walk_pte_range() Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 039/127] Bluetooth: prefetch channel before killing sock Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 040/127] KVM: fix overflow of zero page refcount with ksm running Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 041/127] ALSA: hda: Clear RIRB status before reading WP Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 042/127] skbuff: fix a data race in skb_queue_len() Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 043/127] audit: CONFIG_CHANGE don't log internal bookkeeping as an event Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 044/127] selinux: sel_avc_get_stat_idx should increase position index Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 045/127] scsi: lpfc: Fix RQ buffer leakage when no IOCBs available Sasha Levin
2020-09-18  2:10 ` [PATCH AUTOSEL 4.14 046/127] scsi: lpfc: Fix coverity errors in fmdi attribute handling Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 047/127] drm/omap: fix possible object reference leak Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 048/127] perf test: Fix test trace+probe_vfs_getname.sh on s390 Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 049/127] RDMA/rxe: Fix configuration of atomic queue pair attributes Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 050/127] KVM: x86: fix incorrect comparison in trace event Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 051/127] media: staging/imx: Missing assignment in imx_media_capture_device_register() Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 052/127] x86/pkeys: Add check for pkey "overflow" Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 053/127] bpf: Remove recursion prevention from rcu free callback Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 054/127] dmaengine: tegra-apb: Prevent race conditions on channel's freeing Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 055/127] media: go7007: Fix URB type for interrupt handling Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 056/127] Bluetooth: guard against controllers sending zero'd events Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 057/127] timekeeping: Prevent 32bit truncation in scale64_check_overflow() Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 058/127] ext4: fix a data race at inode->i_disksize Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 059/127] mm: avoid data corruption on CoW fault into PFN-mapped VMA Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 060/127] drm/amdgpu: increase atombios cmd timeout Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 061/127] ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 062/127] scsi: aacraid: Disabling TM path and only processing IOP reset Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 063/127] Bluetooth: L2CAP: handle l2cap config request during open state Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 064/127] media: tda10071: fix unsigned sign extension overflow Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 065/127] xfs: don't ever return a stale pointer from __xfs_dir3_free_read Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 066/127] tpm: ibmvtpm: Wait for buffer to be set before proceeding Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 067/127] rtc: ds1374: fix possible race condition Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 068/127] tracing: Use address-of operator on section symbols Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 069/127] serial: 8250_port: Don't service RX FIFO if throttled Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 070/127] serial: 8250_omap: Fix sleeping function called from invalid context during probe Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 071/127] serial: 8250: 8250_omap: Terminate DMA before pushing data on RX timeout Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 072/127] perf cpumap: Fix snprintf overflow check Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 073/127] cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_work_fn Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 074/127] tools: gpio-hammer: Avoid potential overflow in main Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 075/127] RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 076/127] SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()' Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 077/127] svcrdma: Fix leak of transport addresses Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 078/127] ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 079/127] ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra endpoint descriptor Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 080/127] NFS: Fix races nfs_page_group_destroy() vs nfs_destroy_unlinked_subrequests() Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 081/127] mm/kmemleak.c: use address-of operator on section symbols Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 082/127] mm/filemap.c: clear page error before actual read Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 083/127] mm/vmscan.c: fix data races using kswapd_classzone_idx Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 084/127] mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 085/127] scsi: qedi: Fix termination timeouts in session logout Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 086/127] serial: uartps: Wait for tx_empty in console setup Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 087/127] KVM: Remove CREATE_IRQCHIP/SET_PIT2 race Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 088/127] bdev: Reduce time holding bd_mutex in sync in blkdev_close() Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 089/127] drivers: char: tlclk.c: Avoid data race between init and interrupt handler Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 090/127] staging:r8188eu: avoid skb_clone for amsdu to msdu conversion Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 091/127] sparc64: vcc: Fix error return code in vcc_probe() Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 092/127] arm64: cpufeature: Relax checks for AArch32 support at EL[0-2] Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 093/127] dt-bindings: sound: wm8994: Correct required supplies based on actual implementaion Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 094/127] atm: fix a memory leak of vcc->user_back Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 095/127] perf parse-events: Fix memory leaks found on parse_events Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 096/127] power: supply: max17040: Correct voltage reading Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 097/127] phy: samsung: s5pv210-usb2: Add delay after reset Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 098/127] Bluetooth: Handle Inquiry Cancel error after Inquiry Complete Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 099/127] USB: EHCI: ehci-mv: fix error handling in mv_ehci_probe() Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 100/127] tty: serial: samsung: Correct clock selection logic Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 101/127] ALSA: hda: Fix potential race in unsol event handler Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 102/127] powerpc/traps: Make unrecoverable NMIs die instead of panic Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 103/127] fuse: don't check refcount after stealing page Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 104/127] USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 105/127] arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register Sasha Levin
2020-09-18  2:11 ` [PATCH AUTOSEL 4.14 106/127] e1000: Do not perform reset in reset_task if we are already down Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 107/127] drm/nouveau/debugfs: fix runtime pm imbalance on error Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 108/127] printk: handle blank console arguments passed in Sasha Levin
2020-09-18  2:12 ` Sasha Levin [this message]
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 110/127] btrfs: don't force read-only after error in drop snapshot Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 111/127] vfio/pci: fix memory leaks of eventfd ctx Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 112/127] perf parse-events: Fix incorrect conversion of 'if () free()' to 'zfree()' Sasha Levin
2020-09-28 19:54   ` Naresh Kamboju
2020-09-28 22:01     ` Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 113/127] perf util: Fix memory leak of prefix_if_not_in Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 114/127] perf kcore_copy: Fix module map when there are no modules loaded Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 115/127] mtd: rawnand: omap_elm: Fix runtime PM imbalance on error Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 116/127] ceph: fix potential race in ceph_check_caps Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 117/127] mm/swap_state: fix a data race in swapin_nr_pages Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 118/127] rapidio: avoid data race between file operation callbacks and mport_cdev_add() Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 119/127] mtd: parser: cmdline: Support MTD names containing one or more colons Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 120/127] x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 121/127] vfio/pci: Clear error and request eventfd ctx after releasing Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 122/127] cifs: Fix double add page to memcg when cifs_readpages Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 123/127] scsi: libfc: Handling of extra kref Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 124/127] scsi: libfc: Skip additional kref updating work event Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 125/127] selftests/x86/syscall_nt: Clear weird flags after each test Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 126/127] vfio/pci: fix racy on error and request eventfd ctx Sasha Levin
2020-09-18  2:12 ` [PATCH AUTOSEL 4.14 127/127] btrfs: qgroup: fix data leak caused by race between writeback and truncate Sasha Levin

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=20200918021220.2066485-109-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=balbi@kernel.org \
    --cc=chenyu56@huawei.com \
    --cc=john.stultz@linaro.org \
    --cc=jun.li@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.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).