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, Dan Williams <dan.j.williams@intel.com>,
	Abhilash Kumar Mulumudi <m.abhilash-kumar@hpe.com>,
	Toshi Kani <toshi.kani@hpe.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: [PATCH 4.7 109/143] dax: fix device-dax region base
Date: Mon,  5 Sep 2016 18:44:45 +0200	[thread overview]
Message-ID: <20160905164435.236822803@linuxfoundation.org> (raw)
In-Reply-To: <20160905164430.593075551@linuxfoundation.org>

4.7-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dan Williams <dan.j.williams@intel.com>

commit d0e5845561c238619de9f5b77e0d763f4c331ca5 upstream.

The data offset for a dax region needs to account for a reservation in
the resource range.  Otherwise, device-dax is allowing mappings directly
into the memmap or device-info-block area with crash signatures like the
following:

 BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
 IP: get_zone_device_page+0x11/0x30
 Call Trace:
   follow_devmap_pmd+0x298/0x2c0
   follow_page_mask+0x275/0x530
   __get_user_pages+0xe3/0x750
   __gfn_to_pfn_memslot+0x1b2/0x450 [kvm]
   tdp_page_fault+0x130/0x280 [kvm]
   kvm_mmu_page_fault+0x5f/0xf0 [kvm]
   handle_ept_violation+0x94/0x180 [kvm_intel]
   vmx_handle_exit+0x1d3/0x1440 [kvm_intel]
   kvm_arch_vcpu_ioctl_run+0x81d/0x16a0 [kvm]
   kvm_vcpu_ioctl+0x33c/0x620 [kvm]
   do_vfs_ioctl+0xa2/0x5d0
   SyS_ioctl+0x79/0x90
   entry_SYSCALL_64_fastpath+0x1a/0xa4

Fixes: ab68f2622136 ("/dev/dax, pmem: direct access to persistent memory")
Link: http://lkml.kernel.org/r/147205536732.1606.8994275381938837346.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reported-by: Abhilash Kumar Mulumudi <m.abhilash-kumar@hpe.com>
Reported-by: Toshi Kani <toshi.kani@hpe.com>
Tested-by: Toshi Kani <toshi.kani@hpe.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/dax/pmem.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/drivers/dax/pmem.c
+++ b/drivers/dax/pmem.c
@@ -118,6 +118,9 @@ static int dax_pmem_probe(struct device
 		return rc;
 	}
 
+	/* adjust the dax_region resource to the start of data */
+	res.start += le64_to_cpu(pfn_sb->dataoff);
+
 	nd_region = to_nd_region(dev->parent);
 	dax_region = alloc_dax_region(dev, nd_region->id, &res,
 			le32_to_cpu(pfn_sb->align), addr, PFN_DEV|PFN_MAP);

  parent reply	other threads:[~2016-09-05 16:55 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20160905164741uscas1p251c4053d2e2bfa59be6c957f34f7da84@uscas1p2.samsung.com>
2016-09-05 16:42 ` [PATCH 4.7 000/143] 4.7.3-stable review Greg Kroah-Hartman
2016-09-05 16:42   ` [PATCH 4.7 002/143] uprobes/x86: Fix RIP-relative handling of EVEX-encoded instructions Greg Kroah-Hartman
2016-09-05 16:42   ` [PATCH 4.7 003/143] x86/platform/uv: Skip UV runtime services mapping in the efi_runtime_disabled case Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 004/143] tools/testing/nvdimm: fix SIGTERM vs hotplug crash Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 005/143] SUNRPC: Handle EADDRNOTAVAIL on connection failures Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 006/143] SUNRPC: allow for upcalls for same uid but different gss service Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 007/143] ALSA: usb-audio: Add a sample rate quirk for Creative Live! Cam Socialize HD (VF0610) Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 008/143] ALSA: usb-audio: Add quirk for ELP HD USB Camera Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 009/143] ALSA: hda - Manage power well properly for resume Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 010/143] arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 011/143] efi/capsule: Allocate whole capsule into virtual memory Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 012/143] parisc: Fix order of EREFUSED define in errno.h Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 013/143] virtio: fix memory leak in virtqueue_add() Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 014/143] mm/slub.c: run free_partial() outside of the kmem_cache_node->list_lock Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 015/143] vfio/pci: Fix NULL pointer oops in error interrupt setup handling Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 016/143] tracing: Fix tick_stop tracepoint symbols for user export Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 017/143] perf intel-pt: Fix occasional decoding errors when tracing system-wide Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 018/143] libnvdimm, nd_blk: mask off reserved status bits Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 019/143] ACPI: CPPC: Return error if _CPC is invalid on a CPU Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 020/143] ACPI / CPPC: Prevent cpc_desc_ptr points to the invalid data Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 021/143] um: Dont discard .text.exit section Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 022/143] genirq/msi: Remove unused MSI_FLAG_IDENTITY_MAP Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 023/143] genirq/msi: Make sure PCI MSIs are activated early Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 024/143] crypto: caam - fix non-hmac hashes Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 027/143] parisc: Fix automatic selection of cr16 clocksource Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 028/143] usb: ehci: change order of register cleanup during shutdown Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 029/143] usb: devio, do not warn when allocation fails Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 030/143] usb: misc: usbtest: add fix for driver hang Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 031/143] usb: misc: usbtest: usbtest_do_ioctl may return positive integer Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 032/143] usb: dwc3: pci: add Intel Kabylake PCI ID Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 033/143] usb: dwc3: gadget: increment request->actual once Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 034/143] usb: dwc3: gadget: fix for short pkts during chained xfers Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 035/143] usb: dwc3: gadget: always cleanup all TRBs Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 036/143] usb: hub: Fix unbalanced reference count/memory leak/deadlocks Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 037/143] USB: hub: fix up early-exit pathway in hub_activate Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 038/143] USB: hub: change the locking " Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 039/143] usb: renesas_usbhs: Fix receiving data corrupt on R-Car Gen3 with dmac Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 040/143] usb: renesas_usbhs: clear the BRDYSTS in usbhsg_ep_enable() Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 041/143] usb: renesas_usbhs: Use dmac only if the pipe type is bulk Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 042/143] clk: renesas: r8a7795: Fix SD clocks Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 043/143] USB: validate wMaxPacketValue entries in endpoint descriptors Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 044/143] usb: gadget: fsl_qe_udc: off by one in setup_received_handle() Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 046/143] xhci: always handle "Command Ring Stopped" events Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 047/143] usb: xhci: Fix panic if disconnect Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 048/143] xhci: dont dereference a xhci member after removing xhci Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 049/143] USB: serial: fix memleak in driver-registration error path Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 050/143] USB: serial: option: add D-Link DWM-156/A3 Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 051/143] USB: serial: option: add support for Telit LE920A4 Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 052/143] USB: serial: ftdi_sio: add device ID for WICED USB UART dev board Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 054/143] uprobes: Fix the memcg accounting Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 055/143] perf symbols: Fix annotation of objects with debuginfo files Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 056/143] perf/core: Fix event_function_local() Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 057/143] perf tools mem: Fix -t store option for record command Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 058/143] iommu/dma: Dont put uninitialised IOVA domains Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 059/143] iommu/io-pgtable-arm-v7s: Fix attributes when splitting blocks Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 060/143] iommu/arm-smmu: Fix CMDQ error handling Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 061/143] iommu/arm-smmu: Disable stalling faults for all endpoints Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 062/143] iommu/arm-smmu: Dont BUG() if we find aborting STEs with disable_bypass Greg Kroah-Hartman
2016-09-05 16:43   ` [PATCH 4.7 063/143] pinctrl: meson: Drop pinctrl_unregister for devm_ registered device Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 065/143] i2c: mux: demux-pinctrl: properly roll back when adding adapter fails Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 066/143] EDAC, sb_edac: Fix channel reporting on Knights Landing Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 067/143] s390/dasd: fix hanging device after clear subchannel Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 068/143] mac80211: fix purging multicast PS buffer queue Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 069/143] arm64: kernel: avoid literal load of virtual address with MMU off Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 070/143] arm64: avoid TLB conflict with CONFIG_RANDOMIZE_BASE Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 071/143] arm64: dts: rockchip: add reset saradc node for rk3368 SoCs Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 072/143] arm64: kernel: Fix unmasked debug exceptions when restoring mdscr_el1 Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 073/143] of: fix reference counting in of_graph_get_endpoint_by_regs Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 074/143] sched/cputime: Fix NO_HZ_FULL getrusage() monotonicity regression Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 075/143] iio: fix sched WARNING "do not call blocking ops when !TASK_RUNNING" Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 081/143] drm/amd/amdgpu: sdma resume fail during S4 on CI Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 082/143] drm/amd/amdgpu: compute ring test " Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 087/143] drm/i915: Acquire audio powerwell for HD-Audio registers Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 088/143] drm/i915: fix aliasing_ppgtt leak Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 093/143] ARC: use correct offset in pt_regs for saving/restoring user mode r25 Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 095/143] ARC: Call trace_hardirqs_on() before enabling irqs Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 096/143] ARC: Elide redundant setup of DMA callbacks Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 097/143] aacraid: Check size values after double-fetch from user Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 098/143] mfd: cros_ec: Add cros_ec_cmd_xfer_status() helper Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 099/143] i2c: cros-ec-tunnel: Fix usage of cros_ec_cmd_xfer() Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 100/143] cdc-acm: fix wrong pipe type on rx interrupt xfers Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 101/143] mpt3sas: Fix resume on WarpDrive flash cards Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 102/143] megaraid_sas: Fix probing cards without io port Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 103/143] usb: renesas_usbhs: gadget: fix return value check in usbhs_mod_gadget_probe() Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 104/143] dm round robin: do not use this_cpu_ptr() without having preemption disabled Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 105/143] gpio: Fix OF build problem on UM Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 106/143] gpio: max730x: set gpiochip data pointer before using it Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 107/143] fs/seq_file: fix out-of-bounds read Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 108/143] soft_dirty: fix soft_dirty during THP split Greg Kroah-Hartman
2016-09-05 16:44   ` Greg Kroah-Hartman [this message]
2016-09-05 16:44   ` [PATCH 4.7 110/143] mm: silently skip readahead for DAX inodes Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 111/143] btrfs: waiting on qgroup rescan should not always be interruptible Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 112/143] btrfs: properly track when rescan worker is running Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 113/143] btrfs: dont create or leak aliased root while cleaning up orphans Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 114/143] Revert "floppy: fix open(O_ACCMODE) for ioctl-only open" Greg Kroah-Hartman
2016-09-07 16:53     ` Mark Hounschell
2016-09-08  6:51       ` Greg Kroah-Hartman
2016-09-08  8:05         ` Jiri Kosina
2016-09-09 11:38           ` Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 115/143] Input: tegra-kbc - fix inverted reset logic Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 116/143] Input: synaptics-rmi4 - fix register descriptor subpacket map construction Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 117/143] Input: i8042 - break load dependency between atkbd/psmouse and i8042 Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 118/143] Input: i8042 - set up shared ps2_cmd_mutex for AUX ports Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 119/143] crypto: nx - off by one bug in nx_of_update_msc() Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 120/143] crypto: qat - fix aes-xts key sizes Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 121/143] dmaengine: usb-dmac: check CHCR.DE bit in usb_dmac_isr_channel() Greg Kroah-Hartman
2016-09-05 16:44   ` [PATCH 4.7 123/143] usb: chipidea: udc: dont touch DP when controller is in host mode Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 124/143] USB: fix typo in wMaxPacketSize validation Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 125/143] usb: gadget: udc: core: dont starve DMA resources Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 126/143] USB: serial: mos7720: fix non-atomic allocation in write path Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 127/143] USB: serial: mos7840: " Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 128/143] USB: serial: option: add WeTelecom WM-D200 Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 129/143] USB: serial: option: add WeTelecom 0x6802 and 0x6803 products Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 130/143] staging/lustre/llite: Close atomic_open race with several openers Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 131/143] staging: comedi: daqboard2000: bug fix board type matching code Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 133/143] staging: comedi: ni_mio_common: fix AO inttrig backwards compatibility Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 135/143] ACPI / drivers: fix typo in ACPI_DECLARE_PROBE_ENTRY macro Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 136/143] ACPI / drivers: replace acpi_probe_lock spinlock with mutex Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 137/143] ALSA: line6: Remove double line6_pcm_release() after failed acquire Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 138/143] ALSA: line6: Give up on the lock while URBs are released Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 139/143] ALSA: line6: Fix POD sysfs attributes segfault Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 140/143] hwmon: (it87) Add missing sysfs attribute group terminator Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 141/143] hwmon: (iio_hwmon) fix memory leak in name attribute Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 142/143] sysfs: correctly handle read offset on PREALLOC attrs Greg Kroah-Hartman
2016-09-05 16:45   ` [PATCH 4.7 143/143] SUNRPC: Fix infinite looping in rpc_clnt_iterate_for_each_xprt Greg Kroah-Hartman
2016-09-05 17:46   ` [PATCH 4.7 000/143] 4.7.3-stable review Markus Trippelsdorf
2016-09-05 18:48     ` Greg Kroah-Hartman
2016-09-06 17:04   ` Guenter Roeck
2016-09-07  6:29     ` Greg Kroah-Hartman
2016-09-06 18:02   ` Shuah Khan
2016-09-07  6:29     ` Greg Kroah-Hartman
2016-09-07 20:59   ` Levin, Alexander
2016-09-08  6:52     ` Greg Kroah-Hartman
2016-09-08 10:58       ` Johannes Stezenbach
2016-09-09 14:11         ` Greg Kroah-Hartman
2016-10-10  8:41     ` Greg Kroah-Hartman

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=20160905164435.236822803@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=dan.j.williams@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.abhilash-kumar@hpe.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=toshi.kani@hpe.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).