All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
	kvalo@codeaurora.org, wcn36xx@lists.infradead.org,
	linux-wireless@vger.kernel.org
Cc: kbuild-all@lists.01.org, bryan.odonoghue@linaro.org,
	shawn.guo@linaro.org, benl@squareup.com, loic.poulain@linaro.org
Subject: Re: [PATCH 06/13] wcn36xx: Add ipv6 namespace offload in suspend
Date: Tue, 29 Dec 2020 05:49:35 +0800	[thread overview]
Message-ID: <202012290547.6ryYf96B-lkp@intel.com> (raw)
In-Reply-To: <20201228162839.369156-7-bryan.odonoghue@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 8066 bytes --]

Hi Bryan,

I love your patch! Yet something to improve:

[auto build test ERROR on wireless-drivers-next/master]
[also build test ERROR on wireless-drivers/master ath6kl/ath-next v5.11-rc1 next-20201223]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Bryan-O-Donoghue/wcn36xx-Enable-downstream-consistent-Wake-on-Lan/20201229-003134
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
config: m68k-randconfig-r004-20201228 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/3af46faf5418cb35d31847e75156f9bb24b3828a
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Bryan-O-Donoghue/wcn36xx-Enable-downstream-consistent-Wake-on-Lan/20201229-003134
        git checkout 3af46faf5418cb35d31847e75156f9bb24b3828a
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/linux/kernel.h:11,
                    from include/linux/skbuff.h:13,
                    from include/linux/if_ether.h:19,
                    from include/linux/etherdevice.h:20,
                    from drivers/net/wireless/ath/wcn36xx/smd.c:19:
   include/linux/scatterlist.h: In function 'sg_set_buf':
   arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
     169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
         |                                                 ^~
   include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
      78 | # define unlikely(x) __builtin_expect(!!(x), 0)
         |                                          ^
   include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
     143 |  BUG_ON(!virt_addr_valid(buf));
         |  ^~~~~~
   include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
     143 |  BUG_ON(!virt_addr_valid(buf));
         |          ^~~~~~~~~~~~~~~
   drivers/net/wireless/ath/wcn36xx/smd.c: In function 'wcn36xx_smd_ipv6_ns_offload':
>> drivers/net/wireless/ath/wcn36xx/smd.c:2816:15: error: 'struct wcn36xx_vif' has no member named 'num_target_ipv6_addrs'
    2816 |   if (vif_priv->num_target_ipv6_addrs) {
         |               ^~
   In file included from include/linux/string.h:20,
                    from include/linux/bitmap.h:9,
                    from include/linux/cpumask.h:12,
                    from include/linux/smp.h:13,
                    from include/linux/lockdep.h:14,
                    from include/linux/spinlock.h:59,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/mm.h:10,
                    from include/linux/bvec.h:14,
                    from include/linux/skbuff.h:17,
                    from include/linux/if_ether.h:19,
                    from include/linux/etherdevice.h:20,
                    from drivers/net/wireless/ath/wcn36xx/smd.c:19:
>> drivers/net/wireless/ath/wcn36xx/smd.c:2818:20: error: 'struct wcn36xx_vif' has no member named 'target_ipv6_addrs'
    2818 |           &vif_priv->target_ipv6_addrs[0].in6_u,
         |                    ^~
   arch/m68k/include/asm/string.h:72:45: note: in definition of macro 'memcpy'
      72 | #define memcpy(d, s, n) __builtin_memcpy(d, s, n)
         |                                             ^
   drivers/net/wireless/ath/wcn36xx/smd.c:2821:20: error: 'struct wcn36xx_vif' has no member named 'target_ipv6_addrs'
    2821 |           &vif_priv->target_ipv6_addrs[0].in6_u,
         |                    ^~
   arch/m68k/include/asm/string.h:72:45: note: in definition of macro 'memcpy'
      72 | #define memcpy(d, s, n) __builtin_memcpy(d, s, n)
         |                                             ^
   drivers/net/wireless/ath/wcn36xx/smd.c:2825:15: error: 'struct wcn36xx_vif' has no member named 'num_target_ipv6_addrs'
    2825 |   if (vif_priv->num_target_ipv6_addrs > 1) {
         |               ^~
   In file included from include/linux/string.h:20,
                    from include/linux/bitmap.h:9,
                    from include/linux/cpumask.h:12,
                    from include/linux/smp.h:13,
                    from include/linux/lockdep.h:14,
                    from include/linux/spinlock.h:59,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/mm.h:10,
                    from include/linux/bvec.h:14,
                    from include/linux/skbuff.h:17,
                    from include/linux/if_ether.h:19,
                    from include/linux/etherdevice.h:20,
                    from drivers/net/wireless/ath/wcn36xx/smd.c:19:
   drivers/net/wireless/ath/wcn36xx/smd.c:2827:20: error: 'struct wcn36xx_vif' has no member named 'target_ipv6_addrs'
    2827 |           &vif_priv->target_ipv6_addrs[1].in6_u,
         |                    ^~
   arch/m68k/include/asm/string.h:72:45: note: in definition of macro 'memcpy'
      72 | #define memcpy(d, s, n) __builtin_memcpy(d, s, n)
         |                                             ^


vim +2816 drivers/net/wireless/ath/wcn36xx/smd.c

  2796	
  2797	int wcn36xx_smd_ipv6_ns_offload(struct wcn36xx *wcn, struct ieee80211_vif *vif,
  2798					bool enable)
  2799	{
  2800		struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif);
  2801		struct wcn36xx_hal_host_offload_req_msg msg_body;
  2802		struct wcn36xx_hal_ns_offload_params *ns_params;
  2803		struct wcn36xx_hal_host_offload_req *ho_params;
  2804		int ret;
  2805	
  2806		mutex_lock(&wcn->hal_mutex);
  2807	
  2808		INIT_HAL_MSG(msg_body, WCN36XX_HAL_HOST_OFFLOAD_REQ);
  2809		ho_params = &msg_body.host_offload_params;
  2810		ns_params = &msg_body.ns_offload_params;
  2811	
  2812		ho_params->offload_type = WCN36XX_HAL_IPV6_NS_OFFLOAD;
  2813		if (enable) {
  2814			ho_params->enable =
  2815				WCN36XX_HAL_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE;
> 2816			if (vif_priv->num_target_ipv6_addrs) {
  2817				memcpy(&ho_params->u,
> 2818				       &vif_priv->target_ipv6_addrs[0].in6_u,
  2819				       sizeof(struct in6_addr));
  2820				memcpy(&ns_params->target_ipv6_addr1,
  2821				       &vif_priv->target_ipv6_addrs[0].in6_u,
  2822				       sizeof(struct in6_addr));
  2823				ns_params->target_ipv6_addr1_valid = 1;
  2824			}
  2825			if (vif_priv->num_target_ipv6_addrs > 1) {
  2826				memcpy(&ns_params->target_ipv6_addr2,
  2827				       &vif_priv->target_ipv6_addrs[1].in6_u,
  2828				       sizeof(struct in6_addr));
  2829				ns_params->target_ipv6_addr2_valid = 1;
  2830			}
  2831		}
  2832		memcpy(&ns_params->self_addr, vif->addr, ETH_ALEN);
  2833		ns_params->bss_index = vif_priv->bss_index;
  2834	
  2835		PREPARE_HAL_BUF(wcn->hal_buf, msg_body);
  2836	
  2837		ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len);
  2838		if (ret) {
  2839			wcn36xx_err("Sending host_offload_arp failed\n");
  2840			goto out;
  2841		}
  2842		ret = wcn36xx_smd_rsp_status_check(wcn->hal_buf, wcn->hal_rsp_len);
  2843		if (ret) {
  2844			wcn36xx_err("host_offload_arp failed err=%d\n", ret);
  2845			goto out;
  2846		}
  2847	out:
  2848		mutex_unlock(&wcn->hal_mutex);
  2849		return ret;
  2850	}
  2851	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 23005 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 06/13] wcn36xx: Add ipv6 namespace offload in suspend
Date: Tue, 29 Dec 2020 05:49:35 +0800	[thread overview]
Message-ID: <202012290547.6ryYf96B-lkp@intel.com> (raw)
In-Reply-To: <20201228162839.369156-7-bryan.odonoghue@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 8232 bytes --]

Hi Bryan,

I love your patch! Yet something to improve:

[auto build test ERROR on wireless-drivers-next/master]
[also build test ERROR on wireless-drivers/master ath6kl/ath-next v5.11-rc1 next-20201223]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Bryan-O-Donoghue/wcn36xx-Enable-downstream-consistent-Wake-on-Lan/20201229-003134
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
config: m68k-randconfig-r004-20201228 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/3af46faf5418cb35d31847e75156f9bb24b3828a
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Bryan-O-Donoghue/wcn36xx-Enable-downstream-consistent-Wake-on-Lan/20201229-003134
        git checkout 3af46faf5418cb35d31847e75156f9bb24b3828a
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/linux/kernel.h:11,
                    from include/linux/skbuff.h:13,
                    from include/linux/if_ether.h:19,
                    from include/linux/etherdevice.h:20,
                    from drivers/net/wireless/ath/wcn36xx/smd.c:19:
   include/linux/scatterlist.h: In function 'sg_set_buf':
   arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
     169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
         |                                                 ^~
   include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
      78 | # define unlikely(x) __builtin_expect(!!(x), 0)
         |                                          ^
   include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
     143 |  BUG_ON(!virt_addr_valid(buf));
         |  ^~~~~~
   include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
     143 |  BUG_ON(!virt_addr_valid(buf));
         |          ^~~~~~~~~~~~~~~
   drivers/net/wireless/ath/wcn36xx/smd.c: In function 'wcn36xx_smd_ipv6_ns_offload':
>> drivers/net/wireless/ath/wcn36xx/smd.c:2816:15: error: 'struct wcn36xx_vif' has no member named 'num_target_ipv6_addrs'
    2816 |   if (vif_priv->num_target_ipv6_addrs) {
         |               ^~
   In file included from include/linux/string.h:20,
                    from include/linux/bitmap.h:9,
                    from include/linux/cpumask.h:12,
                    from include/linux/smp.h:13,
                    from include/linux/lockdep.h:14,
                    from include/linux/spinlock.h:59,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/mm.h:10,
                    from include/linux/bvec.h:14,
                    from include/linux/skbuff.h:17,
                    from include/linux/if_ether.h:19,
                    from include/linux/etherdevice.h:20,
                    from drivers/net/wireless/ath/wcn36xx/smd.c:19:
>> drivers/net/wireless/ath/wcn36xx/smd.c:2818:20: error: 'struct wcn36xx_vif' has no member named 'target_ipv6_addrs'
    2818 |           &vif_priv->target_ipv6_addrs[0].in6_u,
         |                    ^~
   arch/m68k/include/asm/string.h:72:45: note: in definition of macro 'memcpy'
      72 | #define memcpy(d, s, n) __builtin_memcpy(d, s, n)
         |                                             ^
   drivers/net/wireless/ath/wcn36xx/smd.c:2821:20: error: 'struct wcn36xx_vif' has no member named 'target_ipv6_addrs'
    2821 |           &vif_priv->target_ipv6_addrs[0].in6_u,
         |                    ^~
   arch/m68k/include/asm/string.h:72:45: note: in definition of macro 'memcpy'
      72 | #define memcpy(d, s, n) __builtin_memcpy(d, s, n)
         |                                             ^
   drivers/net/wireless/ath/wcn36xx/smd.c:2825:15: error: 'struct wcn36xx_vif' has no member named 'num_target_ipv6_addrs'
    2825 |   if (vif_priv->num_target_ipv6_addrs > 1) {
         |               ^~
   In file included from include/linux/string.h:20,
                    from include/linux/bitmap.h:9,
                    from include/linux/cpumask.h:12,
                    from include/linux/smp.h:13,
                    from include/linux/lockdep.h:14,
                    from include/linux/spinlock.h:59,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/mm.h:10,
                    from include/linux/bvec.h:14,
                    from include/linux/skbuff.h:17,
                    from include/linux/if_ether.h:19,
                    from include/linux/etherdevice.h:20,
                    from drivers/net/wireless/ath/wcn36xx/smd.c:19:
   drivers/net/wireless/ath/wcn36xx/smd.c:2827:20: error: 'struct wcn36xx_vif' has no member named 'target_ipv6_addrs'
    2827 |           &vif_priv->target_ipv6_addrs[1].in6_u,
         |                    ^~
   arch/m68k/include/asm/string.h:72:45: note: in definition of macro 'memcpy'
      72 | #define memcpy(d, s, n) __builtin_memcpy(d, s, n)
         |                                             ^


vim +2816 drivers/net/wireless/ath/wcn36xx/smd.c

  2796	
  2797	int wcn36xx_smd_ipv6_ns_offload(struct wcn36xx *wcn, struct ieee80211_vif *vif,
  2798					bool enable)
  2799	{
  2800		struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif);
  2801		struct wcn36xx_hal_host_offload_req_msg msg_body;
  2802		struct wcn36xx_hal_ns_offload_params *ns_params;
  2803		struct wcn36xx_hal_host_offload_req *ho_params;
  2804		int ret;
  2805	
  2806		mutex_lock(&wcn->hal_mutex);
  2807	
  2808		INIT_HAL_MSG(msg_body, WCN36XX_HAL_HOST_OFFLOAD_REQ);
  2809		ho_params = &msg_body.host_offload_params;
  2810		ns_params = &msg_body.ns_offload_params;
  2811	
  2812		ho_params->offload_type = WCN36XX_HAL_IPV6_NS_OFFLOAD;
  2813		if (enable) {
  2814			ho_params->enable =
  2815				WCN36XX_HAL_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE;
> 2816			if (vif_priv->num_target_ipv6_addrs) {
  2817				memcpy(&ho_params->u,
> 2818				       &vif_priv->target_ipv6_addrs[0].in6_u,
  2819				       sizeof(struct in6_addr));
  2820				memcpy(&ns_params->target_ipv6_addr1,
  2821				       &vif_priv->target_ipv6_addrs[0].in6_u,
  2822				       sizeof(struct in6_addr));
  2823				ns_params->target_ipv6_addr1_valid = 1;
  2824			}
  2825			if (vif_priv->num_target_ipv6_addrs > 1) {
  2826				memcpy(&ns_params->target_ipv6_addr2,
  2827				       &vif_priv->target_ipv6_addrs[1].in6_u,
  2828				       sizeof(struct in6_addr));
  2829				ns_params->target_ipv6_addr2_valid = 1;
  2830			}
  2831		}
  2832		memcpy(&ns_params->self_addr, vif->addr, ETH_ALEN);
  2833		ns_params->bss_index = vif_priv->bss_index;
  2834	
  2835		PREPARE_HAL_BUF(wcn->hal_buf, msg_body);
  2836	
  2837		ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len);
  2838		if (ret) {
  2839			wcn36xx_err("Sending host_offload_arp failed\n");
  2840			goto out;
  2841		}
  2842		ret = wcn36xx_smd_rsp_status_check(wcn->hal_buf, wcn->hal_rsp_len);
  2843		if (ret) {
  2844			wcn36xx_err("host_offload_arp failed err=%d\n", ret);
  2845			goto out;
  2846		}
  2847	out:
  2848		mutex_unlock(&wcn->hal_mutex);
  2849		return ret;
  2850	}
  2851	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 23005 bytes --]

  reply	other threads:[~2020-12-28 23:16 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-28 16:28 [PATCH 00/13] wcn36xx: Enable downstream consistent Wake on Lan Bryan O'Donoghue
2020-12-28 16:28 ` [PATCH 01/13] wcn36xx: Return result of set_power_params in suspend Bryan O'Donoghue
2020-12-28 16:28 ` [PATCH 02/13] wcn36xx: Run suspend for the first ieee80211_vif Bryan O'Donoghue
2020-12-28 20:48   ` kernel test robot
2020-12-28 20:48     ` kernel test robot
2020-12-28 16:28 ` [PATCH 03/13] wcn36xx: Add ipv4 ARP offload support in suspend Bryan O'Donoghue
2021-01-11 11:18   ` Kalle Valo
2020-12-28 16:28 ` [PATCH 04/13] wcn36xx: Do not flush indication queue on suspend/resume Bryan O'Donoghue
2020-12-28 16:28 ` [PATCH 05/13] wcn36xx: Add ipv6 address tracking Bryan O'Donoghue
2020-12-28 22:44   ` kernel test robot
2020-12-28 22:44     ` kernel test robot
2020-12-28 16:28 ` [PATCH 06/13] wcn36xx: Add ipv6 namespace offload in suspend Bryan O'Donoghue
2020-12-28 21:49   ` kernel test robot [this message]
2020-12-28 21:49     ` kernel test robot
2020-12-29  2:15     ` Bryan O'Donoghue
2020-12-29  2:15       ` Bryan O'Donoghue
2021-01-11 11:27       ` Kalle Valo
2021-01-11 11:27         ` Kalle Valo
2021-01-12 10:51         ` Chen, Rong A
2021-01-12 10:51           ` [kbuild-all] " Chen, Rong A
2021-01-12 11:18           ` Kalle Valo
2021-01-12 11:18             ` [kbuild-all] " Kalle Valo
2021-01-13  1:57             ` Rong Chen
2021-01-13  1:57               ` [kbuild-all] " Rong Chen
2021-01-13  7:11               ` Kalle Valo
2021-01-13  7:11                 ` [kbuild-all] " Kalle Valo
2020-12-28 16:28 ` [PATCH 07/13] wcn36xx: Flag WIPHY_WOWLAN_MAGIC_PKT Bryan O'Donoghue
2021-01-11 11:38   ` Kalle Valo
2021-01-11 11:49     ` Bryan O'Donoghue
2020-12-28 16:28 ` [PATCH 08/13] wcn36xx: Add set_rekey_data callback Bryan O'Donoghue
2020-12-28 16:28 ` [PATCH 09/13] wcn36xx: Add GTK offload to WoWLAN path Bryan O'Donoghue
2020-12-28 16:28 ` [PATCH 10/13] wcn36xx: Add GTK offload info to WoWLAN resume Bryan O'Donoghue
2021-01-11 11:28   ` Kalle Valo
2021-01-11 11:47     ` Bryan O'Donoghue
2021-01-11 11:39   ` Kalle Valo
2020-12-28 16:28 ` [PATCH 11/13] wcn36xx: Do not suspend if scan in progress Bryan O'Donoghue
2020-12-28 21:47   ` Benjamin Li
2021-01-11 11:31   ` Kalle Valo
2021-01-11 11:46     ` Bryan O'Donoghue
2021-01-11 12:26       ` Kalle Valo
2021-01-11 12:40         ` Bryan O'Donoghue
2021-01-11 11:34   ` Kalle Valo
2020-12-28 16:28 ` [PATCH 12/13] wcn36xx: Add Host suspend indication support Bryan O'Donoghue
2020-12-28 16:28 ` [PATCH 13/13] wcn36xx: Add host resume request support Bryan O'Donoghue

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=202012290547.6ryYf96B-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=benl@squareup.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=kbuild-all@lists.01.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=loic.poulain@linaro.org \
    --cc=shawn.guo@linaro.org \
    --cc=wcn36xx@lists.infradead.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.