All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
	linux-arch@vger.kernel.org,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Russell King <rmk+kernel@arm.linux.org.uk>,
	Christoph Hellwig <hch@lst.de>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 18/25] libnvdimm, pmem: switch from ioremap_cache to memremap
Date: Tue, 28 Jul 2015 16:06:54 -0700	[thread overview]
Message-ID: <CAPcyv4iz=y8HhAx4SnFAhO9At636B-B7tPuUKaBySZ8FZ27oyA@mail.gmail.com> (raw)
In-Reply-To: <1438123889.2459.0.camel@linux.intel.com>

On Tue, Jul 28, 2015 at 3:51 PM, Ross Zwisler
<ross.zwisler@linux.intel.com> wrote:
> On Fri, 2015-07-24 at 22:39 -0400, Dan Williams wrote:
>> In preparation for deprecating ioremap_cache() convert its usage in
>> libnvdimm and the PMEM API to memremap.
>>
>> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
>> ---
>>  arch/x86/include/asm/io.h         |    7 +------
>>  arch/x86/mm/ioremap.c             |    6 ++++++
>>  tools/testing/nvdimm/Kbuild       |    2 +-
>>  tools/testing/nvdimm/test/iomap.c |    6 +++---
>>  4 files changed, 11 insertions(+), 10 deletions(-)
>>
>> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
>> index cc9c61bc1abe..8aeb6456188a 100644
>> --- a/arch/x86/include/asm/io.h
>> +++ b/arch/x86/include/asm/io.h
>> @@ -248,12 +248,7 @@ static inline void flush_write_buffers(void)
>>  #endif
>>  }
>>
>> -static inline void __pmem *arch_memremap_pmem(resource_size_t offset,
>> -     unsigned long size)
>> -{
>> -     return (void __force __pmem *) ioremap_cache(offset, size);
>> -}
>> -
>> +void __pmem *arch_memremap_pmem(resource_size_t offset, size_t size);
>>  #endif /* __KERNEL__ */
>>
>>  extern void native_io_delay(void);
>> diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
>> index 6f759c7c2ab7..7b422e7574b1 100644
>> --- a/arch/x86/mm/ioremap.c
>> +++ b/arch/x86/mm/ioremap.c
>> @@ -317,6 +317,12 @@ void __iomem *ioremap_cache(resource_size_t phys_addr, unsigned long size)
>>  }
>>  EXPORT_SYMBOL(ioremap_cache);
>>
>> +void __pmem *arch_memremap_pmem(resource_size_t offset, size_t size)
>> +{
>> +     return (void __force __pmem *) ioremap_cache(offset, size);
>
> Did you mean for this to be a call to memremap() instead of ioremap_cache()?

The ioremap_cache elimination comes in "[PATCH v2 25/25] pmem: convert
to generic memremap", but yeah I should update the changelog to
reflect this is more about pushing the calls to ioremap_cache() out of
line.  It would be circular at this point in the series to call back
out to memremap to have it turn around and call ioremap_cache again.

WARNING: multiple messages have this Message-ID (diff)
From: Dan Williams <dan.j.williams@intel.com>
To: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
	linux-arch@vger.kernel.org,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@ml01.01.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Russell King <rmk+kernel@arm.linux.org.uk>,
	Christoph Hellwig <hch@lst.de>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 18/25] libnvdimm, pmem: switch from ioremap_cache to memremap
Date: Tue, 28 Jul 2015 16:06:54 -0700	[thread overview]
Message-ID: <CAPcyv4iz=y8HhAx4SnFAhO9At636B-B7tPuUKaBySZ8FZ27oyA@mail.gmail.com> (raw)
In-Reply-To: <1438123889.2459.0.camel@linux.intel.com>

On Tue, Jul 28, 2015 at 3:51 PM, Ross Zwisler
<ross.zwisler@linux.intel.com> wrote:
> On Fri, 2015-07-24 at 22:39 -0400, Dan Williams wrote:
>> In preparation for deprecating ioremap_cache() convert its usage in
>> libnvdimm and the PMEM API to memremap.
>>
>> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
>> ---
>>  arch/x86/include/asm/io.h         |    7 +------
>>  arch/x86/mm/ioremap.c             |    6 ++++++
>>  tools/testing/nvdimm/Kbuild       |    2 +-
>>  tools/testing/nvdimm/test/iomap.c |    6 +++---
>>  4 files changed, 11 insertions(+), 10 deletions(-)
>>
>> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
>> index cc9c61bc1abe..8aeb6456188a 100644
>> --- a/arch/x86/include/asm/io.h
>> +++ b/arch/x86/include/asm/io.h
>> @@ -248,12 +248,7 @@ static inline void flush_write_buffers(void)
>>  #endif
>>  }
>>
>> -static inline void __pmem *arch_memremap_pmem(resource_size_t offset,
>> -     unsigned long size)
>> -{
>> -     return (void __force __pmem *) ioremap_cache(offset, size);
>> -}
>> -
>> +void __pmem *arch_memremap_pmem(resource_size_t offset, size_t size);
>>  #endif /* __KERNEL__ */
>>
>>  extern void native_io_delay(void);
>> diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
>> index 6f759c7c2ab7..7b422e7574b1 100644
>> --- a/arch/x86/mm/ioremap.c
>> +++ b/arch/x86/mm/ioremap.c
>> @@ -317,6 +317,12 @@ void __iomem *ioremap_cache(resource_size_t phys_addr, unsigned long size)
>>  }
>>  EXPORT_SYMBOL(ioremap_cache);
>>
>> +void __pmem *arch_memremap_pmem(resource_size_t offset, size_t size)
>> +{
>> +     return (void __force __pmem *) ioremap_cache(offset, size);
>
> Did you mean for this to be a call to memremap() instead of ioremap_cache()?

The ioremap_cache elimination comes in "[PATCH v2 25/25] pmem: convert
to generic memremap", but yeah I should update the changelog to
reflect this is more about pushing the calls to ioremap_cache() out of
line.  It would be circular at this point in the series to call back
out to memremap to have it turn around and call ioremap_cache again.

WARNING: multiple messages have this Message-ID (diff)
From: dan.j.williams@intel.com (Dan Williams)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 18/25] libnvdimm, pmem: switch from ioremap_cache to memremap
Date: Tue, 28 Jul 2015 16:06:54 -0700	[thread overview]
Message-ID: <CAPcyv4iz=y8HhAx4SnFAhO9At636B-B7tPuUKaBySZ8FZ27oyA@mail.gmail.com> (raw)
In-Reply-To: <1438123889.2459.0.camel@linux.intel.com>

On Tue, Jul 28, 2015 at 3:51 PM, Ross Zwisler
<ross.zwisler@linux.intel.com> wrote:
> On Fri, 2015-07-24 at 22:39 -0400, Dan Williams wrote:
>> In preparation for deprecating ioremap_cache() convert its usage in
>> libnvdimm and the PMEM API to memremap.
>>
>> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
>> ---
>>  arch/x86/include/asm/io.h         |    7 +------
>>  arch/x86/mm/ioremap.c             |    6 ++++++
>>  tools/testing/nvdimm/Kbuild       |    2 +-
>>  tools/testing/nvdimm/test/iomap.c |    6 +++---
>>  4 files changed, 11 insertions(+), 10 deletions(-)
>>
>> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
>> index cc9c61bc1abe..8aeb6456188a 100644
>> --- a/arch/x86/include/asm/io.h
>> +++ b/arch/x86/include/asm/io.h
>> @@ -248,12 +248,7 @@ static inline void flush_write_buffers(void)
>>  #endif
>>  }
>>
>> -static inline void __pmem *arch_memremap_pmem(resource_size_t offset,
>> -     unsigned long size)
>> -{
>> -     return (void __force __pmem *) ioremap_cache(offset, size);
>> -}
>> -
>> +void __pmem *arch_memremap_pmem(resource_size_t offset, size_t size);
>>  #endif /* __KERNEL__ */
>>
>>  extern void native_io_delay(void);
>> diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
>> index 6f759c7c2ab7..7b422e7574b1 100644
>> --- a/arch/x86/mm/ioremap.c
>> +++ b/arch/x86/mm/ioremap.c
>> @@ -317,6 +317,12 @@ void __iomem *ioremap_cache(resource_size_t phys_addr, unsigned long size)
>>  }
>>  EXPORT_SYMBOL(ioremap_cache);
>>
>> +void __pmem *arch_memremap_pmem(resource_size_t offset, size_t size)
>> +{
>> +     return (void __force __pmem *) ioremap_cache(offset, size);
>
> Did you mean for this to be a call to memremap() instead of ioremap_cache()?

The ioremap_cache elimination comes in "[PATCH v2 25/25] pmem: convert
to generic memremap", but yeah I should update the changelog to
reflect this is more about pushing the calls to ioremap_cache() out of
line.  It would be circular at this point in the series to call back
out to memremap to have it turn around and call ioremap_cache again.

  reply	other threads:[~2015-07-28 23:06 UTC|newest]

Thread overview: 208+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-25  2:37 [PATCH v2 00/25] replace ioremap_{cache|wt} with memremap Dan Williams
2015-07-25  2:37 ` Dan Williams
2015-07-25  2:37 ` Dan Williams
2015-07-25  2:37 ` Dan Williams
2015-07-25  2:37 ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 01/25] mm, x86: Fix warning in ioremap RAM check Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 02/25] mm, x86: Remove region_is_ram() call from ioremap Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 03/25] mm: Fix bugs in region_is_ram() Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 04/25] mm: enhance region_is_ram() to distinguish 'unknown' vs 'mixed' Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-27 22:50   ` Luis R. Rodriguez
2015-07-27 22:50     ` Luis R. Rodriguez
2015-07-27 22:50     ` Luis R. Rodriguez
2015-07-28 21:33   ` Toshi Kani
2015-07-28 21:33     ` Toshi Kani
2015-07-28 21:33     ` Toshi Kani
2015-07-25  2:38 ` [PATCH v2 05/25] arch, drivers: don't include <asm/io.h> directly, use <linux/io.h> instead Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 06/25] cleanup IORESOURCE_CACHEABLE vs ioremap() Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 07/25] intel_iommu: fix leaked ioremap mapping Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 08/25] arch: introduce memremap() Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-26 17:25   ` Christoph Hellwig
2015-07-26 17:25     ` Christoph Hellwig
2015-07-26 17:25     ` Christoph Hellwig
2015-07-26 17:49     ` Dan Williams
2015-07-26 17:49       ` Dan Williams
2015-07-26 17:49       ` Dan Williams
2015-07-27  5:12       ` Christoph Hellwig
2015-07-27  5:12         ` Christoph Hellwig
2015-07-27  5:12         ` Christoph Hellwig
2015-07-27  5:12       ` Christoph Hellwig
2015-07-27  5:12         ` Christoph Hellwig
2015-07-27  5:12         ` Christoph Hellwig
2015-07-27 23:26         ` Dan Williams
2015-07-27 23:26           ` Dan Williams
2015-07-27 23:26           ` Dan Williams
2015-07-29  6:50           ` Christoph Hellwig
2015-07-29  6:50             ` Christoph Hellwig
2015-07-29  6:50             ` Christoph Hellwig
2015-07-29 18:27             ` Luis R. Rodriguez
2015-07-29 18:27               ` Luis R. Rodriguez
2015-07-29 18:27               ` Luis R. Rodriguez
2015-07-29 18:33               ` Dan Williams
2015-07-29 18:33                 ` Dan Williams
2015-07-29 18:33                 ` Dan Williams
2015-07-29 21:00                 ` Toshi Kani
2015-07-29 21:00                   ` Toshi Kani
2015-07-29 21:00                   ` Toshi Kani
2015-07-29 21:11                   ` Toshi Kani
2015-07-29 21:11                     ` Toshi Kani
2015-07-29 21:11                     ` Toshi Kani
2015-07-29 21:43                   ` Luis R. Rodriguez
2015-07-29 21:43                     ` Luis R. Rodriguez
2015-07-29 21:43                     ` Luis R. Rodriguez
2015-07-29 21:47                     ` Dan Williams
2015-07-29 21:47                       ` Dan Williams
2015-07-29 21:47                       ` Dan Williams
2015-07-29 21:52                       ` Luis R. Rodriguez
2015-07-29 21:52                         ` Luis R. Rodriguez
2015-07-29 21:52                         ` Luis R. Rodriguez
2015-07-30  0:00                     ` Toshi Kani
2015-07-30  0:00                       ` Toshi Kani
2015-07-30  0:00                       ` Toshi Kani
2015-08-11 21:30                       ` Luis R. Rodriguez
2015-08-11 21:30                         ` Luis R. Rodriguez
2015-08-11 21:30                         ` Luis R. Rodriguez
2015-08-11 22:40                         ` Toshi Kani
2015-08-11 22:40                           ` Toshi Kani
2015-08-11 22:40                           ` Toshi Kani
2015-08-11 22:52                           ` Luis R. Rodriguez
2015-08-11 22:52                             ` Luis R. Rodriguez
2015-08-11 22:52                             ` Luis R. Rodriguez
2015-08-11 23:13                             ` Dan Williams
2015-08-11 23:13                               ` Dan Williams
2015-08-11 23:13                               ` Dan Williams
2016-04-21 12:47                               ` Luis R. Rodriguez
2016-04-21 12:47                                 ` Luis R. Rodriguez
2016-04-21 12:47                                 ` Luis R. Rodriguez
2016-04-21 12:47                                 ` Luis R. Rodriguez
2015-07-27 23:17   ` Luis R. Rodriguez
2015-07-27 23:17     ` Luis R. Rodriguez
2015-07-27 23:17     ` Luis R. Rodriguez
2015-07-27 23:31     ` Dan Williams
2015-07-27 23:31       ` Dan Williams
2015-07-27 23:31       ` Dan Williams
2015-07-27 23:31       ` Dan Williams
2015-07-27 23:43       ` Luis R. Rodriguez
2015-07-27 23:43         ` Luis R. Rodriguez
2015-07-27 23:43         ` Luis R. Rodriguez
2015-07-28  0:32         ` Dan Williams
2015-07-28  0:32           ` Dan Williams
2015-07-28  0:32           ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 09/25] arm: switch from ioremap_cache to memremap Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 10/25] x86: " Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38 ` [PATCH v2 11/25] gma500: switch from acpi_os_ioremap to ioremap Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:38   ` Dan Williams
2015-07-25  2:39 ` [PATCH v2 12/25] i915: " Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-27  7:50   ` [Intel-gfx] " Daniel Vetter
2015-07-27  7:50     ` Daniel Vetter
2015-07-27  7:50     ` Daniel Vetter
2015-07-27  7:50     ` Daniel Vetter
2015-07-25  2:39 ` [PATCH v2 13/25] acpi: switch from ioremap_cache to memremap Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25 23:55   ` Rafael J. Wysocki
2015-07-25 23:55     ` Rafael J. Wysocki
2015-07-25 23:55     ` Rafael J. Wysocki
2015-07-25  2:39 ` [PATCH v2 14/25] toshiba laptop: replace ioremap_cache with ioremap Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39 ` [PATCH v2 15/25] memconsole: fix __iomem mishandling, switch to memremap Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25 22:02   ` Sergei Shtylyov
2015-07-25 22:02     ` Sergei Shtylyov
2015-07-25 22:02     ` Sergei Shtylyov
2015-07-25  2:39 ` [PATCH v2 16/25] visorbus: switch from ioremap_cache " Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39 ` [PATCH v2 17/25] intel-iommu: " Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-08-03 14:27   ` Joerg Roedel
2015-08-03 14:27     ` Joerg Roedel
2015-08-03 14:27     ` Joerg Roedel
2015-07-25  2:39 ` [PATCH v2 18/25] libnvdimm, pmem: " Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-28 22:51   ` Ross Zwisler
2015-07-28 22:51     ` Ross Zwisler
2015-07-28 22:51     ` Ross Zwisler
2015-07-28 23:06     ` Dan Williams [this message]
2015-07-28 23:06       ` Dan Williams
2015-07-28 23:06       ` Dan Williams
2015-07-25  2:39 ` [PATCH v2 19/25] pxa2xx-flash: " Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-10-02 17:51   ` Brian Norris
2015-10-02 17:51     ` Brian Norris
2015-10-02 17:51     ` Brian Norris
2015-10-09 21:33     ` Dan Williams
2015-10-09 21:33       ` Dan Williams
2015-10-09 21:33       ` Dan Williams
2015-07-25  2:39 ` [PATCH v2 20/25] sfi: " Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39 ` [PATCH v2 21/25] fbdev: switch from ioremap_wt " Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:39   ` Dan Williams
2015-07-25  2:40 ` [PATCH v2 22/25] pmem: " Dan Williams
2015-07-25  2:40   ` Dan Williams
2015-07-25  2:40   ` Dan Williams
2015-07-29 19:12   ` Ross Zwisler
2015-07-29 19:12     ` Ross Zwisler
2015-07-29 19:12     ` Ross Zwisler
2015-07-25  2:40 ` [PATCH v2 23/25] arch: remove ioremap_cache, replace with arch_memremap Dan Williams
2015-07-25  2:40   ` Dan Williams
2015-07-25  2:40   ` Dan Williams
2015-07-26 17:31   ` Christoph Hellwig
2015-07-26 17:31     ` Christoph Hellwig
2015-07-26 17:31     ` Christoph Hellwig
2015-07-25  2:40 ` [PATCH v2 24/25] arch: remove ioremap_wt, " Dan Williams
2015-07-25  2:40   ` Dan Williams
2015-07-25  2:40   ` Dan Williams
2015-07-26 17:31   ` Christoph Hellwig
2015-07-26 17:31     ` Christoph Hellwig
2015-07-26 17:31     ` Christoph Hellwig
2015-07-27  8:03   ` Christoph Hellwig
2015-07-27  8:03     ` Christoph Hellwig
2015-07-27  8:03     ` Christoph Hellwig
2015-07-29 22:21     ` Dan Williams
2015-07-29 22:21       ` Dan Williams
2015-07-29 22:21       ` Dan Williams
2015-07-25  2:40 ` [PATCH v2 25/25] pmem: convert to generic memremap Dan Williams
2015-07-25  2:40   ` Dan Williams
2015-07-25  2:40   ` Dan Williams
2015-07-26 17:33   ` Christoph Hellwig
2015-07-26 17:33     ` Christoph Hellwig
2015-07-26 17:33     ` Christoph Hellwig
2015-07-26 18:11     ` Dan Williams
2015-07-26 18:11       ` Dan Williams
2015-07-26 18:11       ` Dan Williams
2015-07-27  5:14       ` Christoph Hellwig
2015-07-27  5:14         ` Christoph Hellwig
2015-07-27  5:14         ` Christoph Hellwig

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='CAPcyv4iz=y8HhAx4SnFAhO9At636B-B7tPuUKaBySZ8FZ27oyA@mail.gmail.com' \
    --to=dan.j.williams@intel.com \
    --cc=hch@lst.de \
    --cc=hpa@zytor.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=mingo@kernel.org \
    --cc=rmk+kernel@arm.linux.org.uk \
    --cc=ross.zwisler@linux.intel.com \
    --cc=tglx@linutronix.de \
    /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.