All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Henriques <luis.henriques@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: James Hogan <james.hogan@imgtec.com>,
	Markos Chandras <markos.chandras@imgtec.com>,
	Leonid Yegoshin <leonid.yegoshin@imgtec.com>,
	linux-mips@linux-mips.org, Ralf Baechle <ralf@linux-mips.org>,
	Luis Henriques <luis.henriques@canonical.com>
Subject: [PATCH 3.16.y-ckt 052/130] MIPS: do_mcheck: Fix kernel code dump with EVA
Date: Fri,  4 Sep 2015 14:07:20 +0100	[thread overview]
Message-ID: <1441372118-5933-53-git-send-email-luis.henriques@canonical.com> (raw)
In-Reply-To: <1441372118-5933-1-git-send-email-luis.henriques@canonical.com>

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

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

From: James Hogan <james.hogan@imgtec.com>

commit 55c723e181ccec30fb5c672397fe69ec35967d97 upstream.

If a machine check exception is raised in kernel mode, user context,
with EVA enabled, then the do_mcheck handler will attempt to read the
code around the EPC using EVA load instructions, i.e. as if the reads
were from user mode. This will either read random user data if the
process has anything mapped at the same address, or it will cause an
exception which is handled by __get_user, resulting in this output:

 Code: (Bad address in epc)

Fix by setting the current user access mode to kernel if the saved
register context indicates the exception was taken in kernel mode. This
causes __get_user to use normal loads to read the kernel code.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Markos Chandras <markos.chandras@imgtec.com>
Cc: Leonid Yegoshin <leonid.yegoshin@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/10777/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 arch/mips/kernel/traps.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index c65062a6ff23..a47405caa0b7 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -1338,6 +1338,7 @@ asmlinkage void do_mcheck(struct pt_regs *regs)
 	const int field = 2 * sizeof(unsigned long);
 	int multi_match = regs->cp0_status & ST0_TS;
 	enum ctx_state prev_state;
+	mm_segment_t old_fs = get_fs();
 
 	prev_state = exception_enter();
 	show_regs(regs);
@@ -1352,8 +1353,13 @@ asmlinkage void do_mcheck(struct pt_regs *regs)
 		dump_tlb_all();
 	}
 
+	if (!user_mode(regs))
+		set_fs(KERNEL_DS);
+
 	show_code((unsigned int __user *) regs->cp0_epc);
 
+	set_fs(old_fs);
+
 	/*
 	 * Some chips may have other causes of machine check (e.g. SB1
 	 * graduation timer)

  parent reply	other threads:[~2015-09-04 13:45 UTC|newest]

Thread overview: 133+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-04 13:06 [3.16.y-ckt stable] Linux 3.16.7-ckt17 stable review Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 001/130] md: use kzalloc() when bitmap is disabled Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 002/130] sparc64: Fix userspace FPU register corruptions Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 003/130] sysfs: Create mountpoints with sysfs_create_mount_point Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 004/130] ARM: OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 005/130] ASoC: pcm1681: Fix setting de-emphasis sampling rate selection Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 006/130] iscsi-target: Fix use-after-free during TPG session shutdown Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 007/130] iscsi-target: Fix iscsit_start_kthreads failure OOPs Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 008/130] iscsi-target: Fix iser explicit logout TX kthread leak Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 009/130] ARM: dts: i.MX35: Fix can support Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 010/130] ALSA: hda - Apply fixup for another Toshiba Satellite S50D Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 011/130] vhost: actually track log eventfd file Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 012/130] arm64/efi: map the entire UEFI vendor string before reading it Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 013/130] xfs: remote attribute headers contain an invalid LSN Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 014/130] xfs: remote attributes need to be considered data Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 015/130] ALSA: hda - Apply a fixup to Dell Vostro 5480 Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 016/130] ALSA: usb-audio: add dB range mapping for some devices Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 017/130] drm/i915: Replace WARN inside I915_READ64_2x32 with retry loop Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 018/130] drm/radeon/combios: add some validation of lvds values Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 019/130] x86/efi: Use all 64 bit of efi_memmap in setup_e820() Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 020/130] ipr: Fix locking for unit attention handling Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 021/130] ipr: Fix incorrect trace indexing Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 022/130] ipr: Fix invalid array indexing for HRRQ Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 023/130] ALSA: hda - Fix MacBook Pro 5,2 quirk Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 024/130] x86/xen: Probe target addresses in set_aliased_prot() before the hypercall Luis Henriques
2015-09-04 13:06   ` Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 025/130] netfilter: ctnetlink: put back references to master ct and expect objects Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 026/130] ipvs: do not use random local source address for tunnels Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 027/130] ipvs: fix crash if scheduler is changed Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 028/130] ipvs: fix crash with sync protocol v0 and FTP Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 029/130] netfilter: nf_conntrack: Support expectations in different zones Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 030/130] NFS: Don't revalidate the mapping if both size and change attr are up to date Luis Henriques
2015-09-04 13:06 ` [PATCH 3.16.y-ckt 031/130] ALSA: hda - fix cs4210_spdif_automute() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 032/130] net/mlx4_core: Fix wrong index in propagating port change event to VFs Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 033/130] niu: don't count tx error twice in case of headroom realloc fails Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 034/130] avr32: handle NULL as a valid clock object Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 035/130] packet: missing dev_put() in packet_do_bind() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 036/130] packet: tpacket_snd(): fix signed/unsigned comparison Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 037/130] bridge: mdb: fix delmdb state in the notification Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 038/130] net: sched: fix refcount imbalance in actions Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 039/130] act_pedit: check binding before calling tcf_hash_release() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 040/130] PCI: Restore PCI_MSIX_FLAGS_BIRMASK definition Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 041/130] USB: qcserial/option: make AT URCs work for Sierra Wireless MC7305/MC7355 Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 042/130] USB: qcserial: Add support for Dell Wireless 5809e 4G Modem Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 043/130] nfsd: Drop BUG_ON and ignore SECLABEL on absent filesystem Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 044/130] crypto: ixp4xx - Remove bogus BUG_ON on scattered dst buffer Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 045/130] USB: sierra: add 1199:68AB device ID Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 046/130] rbd: fix copyup completion race Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 047/130] md/bitmap: return an error when bitmap superblock is corrupt Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 048/130] md/raid1: extend spinlock to protect raid1_end_read_request against inconsistencies Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 049/130] thermal: exynos: Disable the regulator on probe failure Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 050/130] MIPS: Fix sched_getaffinity with MT FPAFF enabled Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 051/130] MIPS: Malta: Don't reinitialise RTC Luis Henriques
2015-09-04 13:07 ` Luis Henriques [this message]
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 053/130] MIPS: show_stack: Fix stack trace with EVA Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 054/130] MIPS: Flush RPS on kernel entry " Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 055/130] xhci: fix off by one error in TRB DMA address boundary check Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 056/130] drivers/usb: Delete XHCI command timer if necessary Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 057/130] ALSA: fireworks/firewire-lib: add support for recent firmware quirk Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 058/130] mm, vmscan: Do not wait for page writeback for GFP_NOFS allocations Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 059/130] MIPS: Make set_pte() SMP safe Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 060/130] ipc: modify message queue accounting to not take kernel data structures into account Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 061/130] ocfs2: fix BUG in ocfs2_downconvert_thread_do_work() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 062/130] fsnotify: fix oops in fsnotify_clear_marks_by_group_flags() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 063/130] drm/radeon: fix hotplug race at startup Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 064/130] rtnetlink: verify IFLA_VF_INFO attributes before passing them to driver Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 065/130] net/tipc: initialize security state for new connection socket Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 066/130] net: pktgen: fix race between pktgen_thread_worker() and kthread_stop() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 067/130] net: call rcu_read_lock early in process_backlog Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 068/130] net: Clone skb before setting peeked flag Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 069/130] net: Fix skb csum races when peeking Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 070/130] net: Fix skb_set_peeked use-after-free bug Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 071/130] ipv6: lock socket in ip6_datagram_connect() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 072/130] bonding: correct the MAC address for "follow" fail_over_mac policy Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 073/130] netlink: don't hold mutex in rcu callback when releasing mmapd ring Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 074/130] rds: fix an integer overflow test in rds_info_getsockopt() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 075/130] udp: fix dst races with multicast early demux Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 076/130] bna: fix interrupts storm caused by erroneous packets Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 077/130] net: gso: use feature flag argument in all protocol gso handlers Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 078/130] Fix firmware loader uevent buffer NULL pointer dereference Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 079/130] qla2xxx: Mark port lost when we receive an RSCN for it Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 080/130] megaraid_sas: use raw_smp_processor_id() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 081/130] fs/buffer.c: support buffer cache allocations with gfp modifiers Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 082/130] bufferhead: Add _gfp version for sb_getblk() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 083/130] ext4: avoid deadlocks in the writeback path by using sb_getblk_gfp Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 084/130] HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 085/130] ima: add support for new "euid" policy condition Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 086/130] ima: extend "mask" policy matching support Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 087/130] mfd: arizona: Fix initialisation of the PM runtime Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 088/130] xen-blkfront: don't add indirect pages to list when !feature_persistent Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 089/130] xen-blkback: replace work_pending with work_busy in purge_persistent_gnt() Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 090/130] regmap: regcache-rbtree: Clean new present bits on present bitmap resize Luis Henriques
2015-09-04 13:07 ` [PATCH 3.16.y-ckt 091/130] target/iscsi: Fix double free of a TUR followed by a solicited NOPOUT Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 092/130] target: REPORT LUNS should return LUN 0 even for dynamic ACLs Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 093/130] perf: Fix fasync handling on inherited events Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 094/130] KVM: x86: Use adjustment in guest cycles when handling MSR_IA32_TSC_ADJUST Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 095/130] x86/ldt: Make modify_ldt synchronous Luis Henriques
2015-09-04 13:08 ` Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 096/130] x86/ldt: Correct LDT access in single stepping logic Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 097/130] rcu: Provide counterpart to rcu_dereference() for non-RCU situations Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 098/130] rcu: Move lockless_dereference() out of rcupdate.h Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 099/130] x86/ldt: Correct FPU emulation access to LDT Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 100/130] localmodconfig: Use Kbuild files too Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 101/130] dm thin metadata: delete btrees when releasing metadata snapshot Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 102/130] dm btree: add ref counting ops for the leaves of top level btrees Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 103/130] drm/radeon: add new OLAND pci id Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 104/130] libiscsi: Fix host busy blocking during connection teardown Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 105/130] libfc: Fix fc_exch_recv_req() error path Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 106/130] libfc: Fix fc_fcp_cleanup_each_cmd() Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 107/130] EDAC, ppc4xx: Access mci->csrows array elements properly Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 108/130] crypto: caam - fix memory corruption in ahash_final_ctx Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 109/130] drm/vmwgfx: Fix execbuf locking issues Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 110/130] mm/hwpoison: fix page refcount of unknown non LRU page Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 111/130] ipc,sem: fix use after free on IPC_RMID after a task using same semaphore set exits Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 112/130] ipc/sem.c: change memory barrier in sem_lock() to smp_rmb() Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 113/130] ipc/sem.c: update/correct memory barriers Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 114/130] MIPS: Fix seccomp syscall argument for MIPS64 Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 115/130] x86/ldt: Further fix FPU emulation Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 116/130] SCSI: Fix NULL pointer dereference in runtime PM Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 117/130] ALSA: usb-audio: Fix runtime PM unbalance Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 118/130] Add factory recertified Crucial M500s to blacklist Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 119/130] arm64: KVM: Fix host crash when injecting a fault into a 32bit guest Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 120/130] batman-adv: fix kernel crash due to missing NULL checks Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 121/130] batman-adv: protect tt_local_entry from concurrent delete events Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 122/130] perf: Fix PERF_EVENT_IOC_PERIOD migration race Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 123/130] net: Fix RCU splat in af_key Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 124/130] ip6_gre: release cached dst on tunnel removal Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 125/130] s390/sclp: fix compile error Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 126/130] xen/gntdev: convert priv->lock to a mutex Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 127/130] xen/gntdevt: Fix race condition in gntdev_release() Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 128/130] signalfd: fix information leak in signalfd_copyinfo Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 129/130] signal: fix information leak in copy_siginfo_to_user Luis Henriques
2015-09-04 13:08 ` [PATCH 3.16.y-ckt 130/130] signal: fix information leak in copy_siginfo_from_user32 Luis Henriques

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=1441372118-5933-53-git-send-email-luis.henriques@canonical.com \
    --to=luis.henriques@canonical.com \
    --cc=james.hogan@imgtec.com \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=leonid.yegoshin@imgtec.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=markos.chandras@imgtec.com \
    --cc=ralf@linux-mips.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.