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: Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	"David S . Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>,
	netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 5.2 054/123] net: stmmac: manage errors returned by of_get_mac_address()
Date: Tue, 13 Aug 2019 22:09:38 -0400	[thread overview]
Message-ID: <20190814021047.14828-54-sashal@kernel.org> (raw)
In-Reply-To: <20190814021047.14828-1-sashal@kernel.org>

From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

[ Upstream commit 195b2919ccd7ffcaf6b6bbcb39444a53ab8308c7 ]

Commit d01f449c008a ("of_net: add NVMEM support to of_get_mac_address")
added support for reading the MAC address from an nvmem-cell. This
required changing the logic to return an error pointer upon failure.

If stmmac is loaded before the nvmem provider driver then
of_get_mac_address() return an error pointer with -EPROBE_DEFER.

Propagate this error so the stmmac driver will be probed again after the
nvmem provider driver is loaded.
Default to a random generated MAC address in case of any other error,
instead of using the error pointer as MAC address.

Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address")
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index 0f0f4b31eb7ec..9b5218a8c15bc 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -385,6 +385,13 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
 		return ERR_PTR(-ENOMEM);
 
 	*mac = of_get_mac_address(np);
+	if (IS_ERR(*mac)) {
+		if (PTR_ERR(*mac) == -EPROBE_DEFER)
+			return ERR_CAST(*mac);
+
+		*mac = NULL;
+	}
+
 	plat->interface = of_get_phy_mode(np);
 
 	/* Get max speed of operation from device tree */
-- 
2.20.1


  parent reply	other threads:[~2019-08-14  2:36 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-14  2:08 [PATCH AUTOSEL 5.2 001/123] ASoC: simple_card_utils.h: care NULL dai at asoc_simple_debug_dai() Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 002/123] ASoC: simple-card: fix an use-after-free in simple_dai_link_of_dpcm() Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 003/123] ASoC: simple-card: fix an use-after-free in simple_for_each_link() Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 004/123] ASoC: audio-graph-card: fix use-after-free in graph_dai_link_of_dpcm() Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 005/123] ASoC: audio-graph-card: fix an use-after-free in graph_get_dai_id() Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 006/123] ASoC: audio-graph-card: add missing const at graph_get_dai_id() Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 007/123] iio: adc: max9611: Fix misuse of GENMASK macro Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 008/123] IIO: Ingenic JZ47xx: Set clock divider on probe Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 009/123] iio: cros_ec_accel_legacy: Fix incorrect channel setting Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 010/123] iio: imu: mpu6050: add missing available scan masks Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 011/123] regulator: axp20x: fix DCDCA and DCDCD for AXP806 Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 012/123] regulator: axp20x: fix DCDC5 and DCDC6 for AXP803 Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 013/123] ASoC: samsung: odroid: fix an use-after-free issue for codec Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 014/123] ASoC: samsung: odroid: fix a double-free issue for cpu_dai Sasha Levin
2019-08-14  2:08 ` [PATCH AUTOSEL 5.2 015/123] ASoC: Intel: bytcht_es8316: Add quirk for Irbis NB41 netbook Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 016/123] HID: logitech-hidpp: add USB PID for a few more supported mice Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 017/123] HID: Add 044f:b320 ThrustMaster, Inc. 2 in 1 DT Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 018/123] MIPS: kernel: only use i8253 clocksource with periodic clockevent Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 019/123] mips: fix cacheinfo Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 020/123] libbpf: sanitize VAR to conservative 1-byte INT Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 021/123] netfilter: ebtables: fix a memory leak bug in compat Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 022/123] ASoC: dapm: Fix handling of custom_stop_condition on DAPM graph walks Sasha Levin
2019-08-14  9:20   ` Mark Brown
2019-08-26  1:33     ` Sasha Levin
2019-08-27 10:54       ` Mark Brown
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 023/123] ASoC: SOF: use __u32 instead of uint32_t in uapi headers Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 024/123] spi: pxa2xx: Balance runtime PM enable/disable on error Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 025/123] bpf: sockmap, sock_map_delete needs to use xchg Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 026/123] bpf: sockmap, synchronize_rcu before free'ing map Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 027/123] bpf: sockmap, only create entry if ulp is not already enabled Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 028/123] selftests/bpf: fix sendmsg6_prog on s390 Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 029/123] ASoC: dapm: fix a memory leak bug Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 030/123] bonding: Force slave speed check after link state recovery for 802.3ad Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 031/123] net: mvpp2: Don't check for 3 consecutive Idle frames for 10G links Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 032/123] selftests: forwarding: gre_multipath: Enable IPv4 forwarding Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 033/123] selftests: forwarding: gre_multipath: Fix flower filters Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 034/123] bpf: fix access to skb_shared_info->gso_segs Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 035/123] selftests/bpf: add another gso_segs access Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 036/123] libbpf: fix using uninitialized ioctl results Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 037/123] can: dev: call netif_carrier_off() in register_candev() Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 038/123] can: mcp251x: add error check when wq alloc failed Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 039/123] can: gw: Fix error path of cgw_module_init Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 040/123] ASoC: Fail card instantiation if DAI format setup fails Sasha Levin
2019-08-14  9:22   ` Mark Brown
2019-08-26  1:35     ` Sasha Levin
2019-08-27 11:00       ` Mark Brown
2019-08-28  2:13         ` Sasha Levin
2019-08-28  7:07           ` Ricard Wanderlof
2019-08-28 13:04             ` Mark Brown
2019-09-06  8:40             ` revert: " Ricard Wanderlof
2019-09-06 10:58               ` Mark Brown
2019-09-06 18:38                 ` Sasha Levin
2019-09-09  9:35                   ` Mark Brown
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 041/123] Staging: fbtft: Fix GPIO handling Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 042/123] libbpf: silence GCC8 warning about string truncation Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 043/123] st21nfca_connectivity_event_received: null check the allocation Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 044/123] st_nci_hci_connectivity_event_received: " Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 045/123] {nl,mac}80211: fix interface combinations on crypto controlled devices Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 046/123] ASoC: ti: davinci-mcasp: Fix clk PDIR handling for i2s master mode Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 047/123] ASoC: rockchip: Fix mono capture Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 048/123] ASoC: ti: davinci-mcasp: Correct slot_width posed constraint Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 049/123] net: usb: qmi_wwan: Add the BroadMobi BM818 card Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 050/123] qed: RDMA - Fix the hw_ver returned in device attributes Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 051/123] isdn: mISDN: hfcsusb: Fix possible null-pointer dereferences in start_isoc_chain() Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 052/123] habanalabs: fix F/W download in BE architecture Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 053/123] mac80211_hwsim: Fix possible null-pointer dereferences in hwsim_dump_radio_nl() Sasha Levin
2019-08-14  2:09 ` Sasha Levin [this message]
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 055/123] netfilter: ipset: Actually allow destination MAC address for hash:ip,mac sets too Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 056/123] netfilter: ipset: Copy the right MAC address in bitmap:ip,mac and hash:ip,mac sets Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 057/123] netfilter: ipset: Fix rename concurrency with listing Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 058/123] netfilter: ebtables: also count base chain policies Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 059/123] rxrpc: Fix potential deadlock Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 060/123] rxrpc: Fix the lack of notification when sendmsg() fails on a DATA packet Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 061/123] nvmem: Use the same permissions for eeprom as for nvmem Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 062/123] iwlwifi: mvm: avoid races in rate init and rate perform Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 063/123] iwlwifi: dbg_ini: move iwl_dbg_tlv_load_bin out of debug override ifdef Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 064/123] iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 065/123] iwlwifi: fix locking in delayed GTK setting Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 066/123] iwlwifi: mvm: send LQ command always ASYNC Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 067/123] driver core: Fix use-after-free and double free on glue directory Sasha Levin
2019-08-14  7:36   ` Greg Kroah-Hartman
2019-08-26  1:35     ` Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 068/123] enetc: Fix build error without PHYLIB Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 069/123] isdn: hfcsusb: Fix mISDN driver crash caused by transfer buffer on the stack Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 070/123] net: phy: phy_led_triggers: Fix a possible null-pointer dereference in phy_led_trigger_change_speed() Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 071/123] perf bench numa: Fix cpu0 binding Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 072/123] Input: kbtab - sanity check for endpoint type Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 073/123] net: usb: pegasus: fix improper read if get_registers() fail Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 074/123] spi: pxa2xx: Add support for Intel Tiger Lake Sasha Levin
2019-08-14  2:09 ` [PATCH AUTOSEL 5.2 075/123] can: sja1000: force the string buffer NULL-terminated Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 076/123] can: peak_usb: " Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 077/123] ASoC: amd: acp3x: use dma_ops of parent device for acp3x dma driver Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 078/123] net/ethernet/qlogic/qed: force the string buffer NULL-terminated Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 079/123] enetc: Select PHYLIB while CONFIG_FSL_ENETC_VF is set Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 080/123] NFSv4: Fix a credential refcount leak in nfs41_check_delegation_stateid Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 081/123] NFSv4: When recovering state fails with EAGAIN, retry the same recovery Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 082/123] NFSv4.1: Fix open stateid recovery Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 083/123] NFSv4.1: Only reap expired delegations Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 084/123] NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim() Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 085/123] NFS: Fix regression whereby fscache errors are appearing on 'nofsc' mounts Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 086/123] HID: quirks: Set the INCREMENT_USAGE_ON_DUPLICATE quirk on Saitek X52 Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 087/123] HID: holtek: test for sanity of intfdata Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 088/123] HID: input: fix a4tech horizontal wheel custom usage Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 089/123] drm/rockchip: Suspend DP late Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 090/123] SMB3: Fix potential memory leak when processing compound chain Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 091/123] SMB3: Kernel oops mounting a encryptData share with CONFIG_DEBUG_VIRTUAL Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 092/123] HID: hiddev: avoid opening a disconnected device Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 093/123] HID: hiddev: do cleanup in failure of opening a device Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 094/123] sched/deadline: Fix double accounting of rq/running bw in push & pull Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 095/123] sched/psi: Reduce psimon FIFO priority Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 096/123] sched/psi: Do not require setsched permission from the trigger creator Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 097/123] s390/protvirt: avoid memory sharing for diag 308 set/store Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 098/123] s390/mm: fix dump_pagetables top level page table walking Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 099/123] s390: put _stext and _etext into .text section Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 100/123] ata: rb532_cf: Fix unused variable warning in rb532_pata_driver_probe Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 101/123] Input: iforce - add sanity checks Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 102/123] net: cxgb3_main: Fix a resource leak in a error path in 'init_one()' Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 103/123] net: stmmac: Fix issues when number of Queues >= 4 Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 104/123] net: stmmac: tc: Do not return a fragment entry Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 105/123] drm/amdgpu: pin the csb buffer on hw init for gfx v8 Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 106/123] net: hisilicon: make hip04_tx_reclaim non-reentrant Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 107/123] net: hisilicon: fix hip04-xmit never return TX_BUSY Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 108/123] net: hisilicon: Fix dma_map_single failed on arm64 Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 109/123] Revert "PCI: Add missing link delays required by the PCIe spec" Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 110/123] NFSv4: Ensure state recovery handles ETIMEDOUT correctly Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 111/123] libata: have ata_scsi_rw_xlat() fail invalid passthrough requests Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 112/123] libata: add SG safety checks in SFF pio transfers Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 113/123] x86/lib/cpu: Address missing prototypes warning Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 114/123] drm/vmwgfx: fix memory leak when too many retries have occurred Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 115/123] block: aoe: Fix kernel crash due to atomic sleep when exiting Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 116/123] block, bfq: handle NULL return value by bfq_init_rq() Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 117/123] perf ftrace: Fix failure to set cpumask when only one cpu is present Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 118/123] perf cpumap: Fix writing to illegal memory in handling cpumap mask Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 119/123] perf pmu-events: Fix missing "cpu_clk_unhalted.core" event Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 120/123] dt-bindings: riscv: fix the schema compatible string for the HiFive Unleashed board Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 121/123] KVM: arm64: Don't write junk to sysregs on reset Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 122/123] KVM: arm: Don't write junk to CP15 registers " Sasha Levin
2019-08-14  2:10 ` [PATCH AUTOSEL 5.2 123/123] selftests: kvm: Adding config fragments 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=20190814021047.14828-54-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=narmstrong@baylibre.com \
    --cc=netdev@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).