All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Eduardo Valentin <edubezval@gmail.com>, Rui Zhang <rui.zhang@intel.com>
Cc: Linux PM <linux-pm@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	lm-sensors@lm-sensors.org,
	Lukasz Majewski <l.majewski@samsung.com>,
	Kukjin Kim <kgene@kernel.org>,
	linux-samsung-soc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 11/13] thermal: convert exynos to use devm_thermal_zone_of_sensor_register
Date: Thu, 10 Mar 2016 09:16:36 +0900	[thread overview]
Message-ID: <56E0BCE4.6020309@samsung.com> (raw)
In-Reply-To: <1457559336-17652-12-git-send-email-edubezval@gmail.com>

On 10.03.2016 06:35, Eduardo Valentin wrote:
> This changes the driver to use the devm_ version
> of thermal_zone_of_sensor_register and cleans
> up the  local points and unregister calls.
> 
> Cc: Lukasz Majewski <l.majewski@samsung.com>
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> Cc: linux-pm@vger.kernel.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
> ---
>  drivers/thermal/samsung/exynos_tmu.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
> index fa61eff..256039e 100644
> --- a/drivers/thermal/samsung/exynos_tmu.c
> +++ b/drivers/thermal/samsung/exynos_tmu.c
> @@ -1363,8 +1363,8 @@ static int exynos_tmu_probe(struct platform_device *pdev)
>  	 * data->tzd must be registered before calling exynos_tmu_initialize(),
>  	 * requesting irq and calling exynos_tmu_control().
>  	 */
> -	data->tzd = thermal_zone_of_sensor_register(&pdev->dev, 0, data,
> -						    &exynos_sensor_ops);
> +	data->tzd = devm_thermal_zone_of_sensor_register(&pdev->dev, 0, data,
> +							 &exynos_sensor_ops);
>  	if (IS_ERR(data->tzd)) {
>  		ret = PTR_ERR(data->tzd);
>  		dev_err(&pdev->dev, "Failed to register sensor: %d\n", ret);
> @@ -1374,21 +1374,19 @@ static int exynos_tmu_probe(struct platform_device *pdev)
>  	ret = exynos_tmu_initialize(pdev);
>  	if (ret) {
>  		dev_err(&pdev->dev, "Failed to initialize TMU\n");
> -		goto err_thermal;
> +		goto err_sclk;
>  	}
>  
>  	ret = devm_request_irq(&pdev->dev, data->irq, exynos_tmu_irq,
>  		IRQF_TRIGGER_RISING | IRQF_SHARED, dev_name(&pdev->dev), data);
>  	if (ret) {
>  		dev_err(&pdev->dev, "Failed to request irq: %d\n", data->irq);
> -		goto err_thermal;
> +		goto err_sclk;
>  	}
>  
>  	exynos_tmu_control(pdev, true);
>  	return 0;
>  
> -err_thermal:
> -	thermal_zone_of_sensor_unregister(&pdev->dev, data->tzd);
>  err_sclk:
>  	clk_disable_unprepare(data->sclk);
>  err_clk:
> @@ -1406,9 +1404,7 @@ err_sensor:
>  static int exynos_tmu_remove(struct platform_device *pdev)
>  {
>  	struct exynos_tmu_data *data = platform_get_drvdata(pdev);
> -	struct thermal_zone_device *tzd = data->tzd;
>  
> -	thermal_zone_of_sensor_unregister(&pdev->dev, tzd);

Before, the sensor was removed from zone (ops like get_temp NULL-ified
etc), then we stopped TMU, disabled clocks, disabled regulator and
finally freed IRQ (through devm-like interface).

Now this will be different - first stop of TMU, disable clocks, disable,
regulator, remove sensor from zone (through devm) and finally free IRQ.

Are you sure that changing order is okay?

Best regards,
Krzysztof

>  	exynos_tmu_control(pdev, false);
>  
>  	clk_disable_unprepare(data->sclk);
> 

WARNING: multiple messages have this Message-ID (diff)
From: k.kozlowski@samsung.com (Krzysztof Kozlowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 11/13] thermal: convert exynos to use devm_thermal_zone_of_sensor_register
Date: Thu, 10 Mar 2016 09:16:36 +0900	[thread overview]
Message-ID: <56E0BCE4.6020309@samsung.com> (raw)
In-Reply-To: <1457559336-17652-12-git-send-email-edubezval@gmail.com>

On 10.03.2016 06:35, Eduardo Valentin wrote:
> This changes the driver to use the devm_ version
> of thermal_zone_of_sensor_register and cleans
> up the  local points and unregister calls.
> 
> Cc: Lukasz Majewski <l.majewski@samsung.com>
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> Cc: linux-pm at vger.kernel.org
> Cc: linux-samsung-soc at vger.kernel.org
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
> ---
>  drivers/thermal/samsung/exynos_tmu.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
> index fa61eff..256039e 100644
> --- a/drivers/thermal/samsung/exynos_tmu.c
> +++ b/drivers/thermal/samsung/exynos_tmu.c
> @@ -1363,8 +1363,8 @@ static int exynos_tmu_probe(struct platform_device *pdev)
>  	 * data->tzd must be registered before calling exynos_tmu_initialize(),
>  	 * requesting irq and calling exynos_tmu_control().
>  	 */
> -	data->tzd = thermal_zone_of_sensor_register(&pdev->dev, 0, data,
> -						    &exynos_sensor_ops);
> +	data->tzd = devm_thermal_zone_of_sensor_register(&pdev->dev, 0, data,
> +							 &exynos_sensor_ops);
>  	if (IS_ERR(data->tzd)) {
>  		ret = PTR_ERR(data->tzd);
>  		dev_err(&pdev->dev, "Failed to register sensor: %d\n", ret);
> @@ -1374,21 +1374,19 @@ static int exynos_tmu_probe(struct platform_device *pdev)
>  	ret = exynos_tmu_initialize(pdev);
>  	if (ret) {
>  		dev_err(&pdev->dev, "Failed to initialize TMU\n");
> -		goto err_thermal;
> +		goto err_sclk;
>  	}
>  
>  	ret = devm_request_irq(&pdev->dev, data->irq, exynos_tmu_irq,
>  		IRQF_TRIGGER_RISING | IRQF_SHARED, dev_name(&pdev->dev), data);
>  	if (ret) {
>  		dev_err(&pdev->dev, "Failed to request irq: %d\n", data->irq);
> -		goto err_thermal;
> +		goto err_sclk;
>  	}
>  
>  	exynos_tmu_control(pdev, true);
>  	return 0;
>  
> -err_thermal:
> -	thermal_zone_of_sensor_unregister(&pdev->dev, data->tzd);
>  err_sclk:
>  	clk_disable_unprepare(data->sclk);
>  err_clk:
> @@ -1406,9 +1404,7 @@ err_sensor:
>  static int exynos_tmu_remove(struct platform_device *pdev)
>  {
>  	struct exynos_tmu_data *data = platform_get_drvdata(pdev);
> -	struct thermal_zone_device *tzd = data->tzd;
>  
> -	thermal_zone_of_sensor_unregister(&pdev->dev, tzd);

Before, the sensor was removed from zone (ops like get_temp NULL-ified
etc), then we stopped TMU, disabled clocks, disabled regulator and
finally freed IRQ (through devm-like interface).

Now this will be different - first stop of TMU, disable clocks, disable,
regulator, remove sensor from zone (through devm) and finally free IRQ.

Are you sure that changing order is okay?

Best regards,
Krzysztof

>  	exynos_tmu_control(pdev, false);
>  
>  	clk_disable_unprepare(data->sclk);
> 

WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Eduardo Valentin <edubezval@gmail.com>, Rui Zhang <rui.zhang@intel.com>
Cc: Linux PM <linux-pm@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	lm-sensors@lm-sensors.org,
	Lukasz Majewski <l.majewski@samsung.com>,
	Kukjin Kim <kgene@kernel.org>,
	linux-samsung-soc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [lm-sensors] [PATCH 11/13] thermal: convert exynos to use devm_thermal_zone_of_sensor_register
Date: Thu, 10 Mar 2016 00:16:36 +0000	[thread overview]
Message-ID: <56E0BCE4.6020309@samsung.com> (raw)
In-Reply-To: <1457559336-17652-12-git-send-email-edubezval@gmail.com>

On 10.03.2016 06:35, Eduardo Valentin wrote:
> This changes the driver to use the devm_ version
> of thermal_zone_of_sensor_register and cleans
> up the  local points and unregister calls.
> 
> Cc: Lukasz Majewski <l.majewski@samsung.com>
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> Cc: linux-pm@vger.kernel.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
> ---
>  drivers/thermal/samsung/exynos_tmu.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
> index fa61eff..256039e 100644
> --- a/drivers/thermal/samsung/exynos_tmu.c
> +++ b/drivers/thermal/samsung/exynos_tmu.c
> @@ -1363,8 +1363,8 @@ static int exynos_tmu_probe(struct platform_device *pdev)
>  	 * data->tzd must be registered before calling exynos_tmu_initialize(),
>  	 * requesting irq and calling exynos_tmu_control().
>  	 */
> -	data->tzd = thermal_zone_of_sensor_register(&pdev->dev, 0, data,
> -						    &exynos_sensor_ops);
> +	data->tzd = devm_thermal_zone_of_sensor_register(&pdev->dev, 0, data,
> +							 &exynos_sensor_ops);
>  	if (IS_ERR(data->tzd)) {
>  		ret = PTR_ERR(data->tzd);
>  		dev_err(&pdev->dev, "Failed to register sensor: %d\n", ret);
> @@ -1374,21 +1374,19 @@ static int exynos_tmu_probe(struct platform_device *pdev)
>  	ret = exynos_tmu_initialize(pdev);
>  	if (ret) {
>  		dev_err(&pdev->dev, "Failed to initialize TMU\n");
> -		goto err_thermal;
> +		goto err_sclk;
>  	}
>  
>  	ret = devm_request_irq(&pdev->dev, data->irq, exynos_tmu_irq,
>  		IRQF_TRIGGER_RISING | IRQF_SHARED, dev_name(&pdev->dev), data);
>  	if (ret) {
>  		dev_err(&pdev->dev, "Failed to request irq: %d\n", data->irq);
> -		goto err_thermal;
> +		goto err_sclk;
>  	}
>  
>  	exynos_tmu_control(pdev, true);
>  	return 0;
>  
> -err_thermal:
> -	thermal_zone_of_sensor_unregister(&pdev->dev, data->tzd);
>  err_sclk:
>  	clk_disable_unprepare(data->sclk);
>  err_clk:
> @@ -1406,9 +1404,7 @@ err_sensor:
>  static int exynos_tmu_remove(struct platform_device *pdev)
>  {
>  	struct exynos_tmu_data *data = platform_get_drvdata(pdev);
> -	struct thermal_zone_device *tzd = data->tzd;
>  
> -	thermal_zone_of_sensor_unregister(&pdev->dev, tzd);

Before, the sensor was removed from zone (ops like get_temp NULL-ified
etc), then we stopped TMU, disabled clocks, disabled regulator and
finally freed IRQ (through devm-like interface).

Now this will be different - first stop of TMU, disable clocks, disable,
regulator, remove sensor from zone (through devm) and finally free IRQ.

Are you sure that changing order is okay?

Best regards,
Krzysztof

>  	exynos_tmu_control(pdev, false);
>  
>  	clk_disable_unprepare(data->sclk);
> 


_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

  reply	other threads:[~2016-03-10  0:16 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-09 21:35 [PATCH 00/13] thermal: convert users of thermal_zone_of_sensor_register to devm_ Eduardo Valentin
2016-03-09 21:35 ` [lm-sensors] " Eduardo Valentin
2016-03-09 21:35 ` [PATCH 01/13] hwmon: convert lm75 to use devm_thermal_zone_of_sensor_register Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-10  0:02   ` kbuild test robot
2016-03-10  0:02     ` [lm-sensors] " kbuild test robot
2016-03-10  0:02     ` kbuild test robot
2016-03-10  3:18   ` Guenter Roeck
2016-03-10  3:18     ` [lm-sensors] " Guenter Roeck
2016-03-09 21:35 ` [PATCH 02/13] hwmon: convert ntc_thermistor " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-10  0:14   ` kbuild test robot
2016-03-10  0:14     ` [lm-sensors] [PATCH 02/13] hwmon: convert ntc_thermistor to use devm_thermal_zone_of_sensor_regi kbuild test robot
2016-03-10  0:14     ` [PATCH 02/13] hwmon: convert ntc_thermistor to use devm_thermal_zone_of_sensor_register kbuild test robot
2016-03-10  2:16   ` kbuild test robot
2016-03-10  2:16     ` [lm-sensors] [PATCH 02/13] hwmon: convert ntc_thermistor to use devm_thermal_zone_of_sensor_regi kbuild test robot
2016-03-10  2:16     ` [PATCH 02/13] hwmon: convert ntc_thermistor to use devm_thermal_zone_of_sensor_register kbuild test robot
2016-03-10  3:19   ` Guenter Roeck
2016-03-10  3:19     ` [lm-sensors] [PATCH 02/13] hwmon: convert ntc_thermistor to use devm_thermal_zone_of_sensor_regi Guenter Roeck
2016-03-09 21:35 ` [PATCH 03/13] hwmon: convert tmp102 to use devm_thermal_zone_of_sensor_register Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-10  3:20   ` Guenter Roeck
2016-03-10  3:20     ` [lm-sensors] " Guenter Roeck
2016-03-10  4:43   ` kbuild test robot
2016-03-10  4:43     ` [lm-sensors] " kbuild test robot
2016-03-10  4:43     ` kbuild test robot
2016-03-09 21:35 ` [PATCH 04/13] hwmon: convert scpi-hwmon " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-10  2:29   ` Guenter Roeck
2016-03-10  2:29     ` [lm-sensors] " Guenter Roeck
2016-03-14 19:49     ` Eduardo Valentin
2016-03-14 19:49       ` [lm-sensors] " Eduardo Valentin
2016-03-09 21:35 ` [PATCH 05/13] input: convert sun4i-ts " Eduardo Valentin
2016-03-09 21:35   ` Eduardo Valentin
2016-03-09 21:45   ` Dmitry Torokhov
2016-03-09 21:45     ` Dmitry Torokhov
2016-03-14 21:07     ` Eduardo Valentin
2016-03-14 21:07       ` Eduardo Valentin
2016-03-10  9:34   ` Sascha Hauer
2016-03-10  9:34     ` Sascha Hauer
2016-03-10 13:19     ` Hans de Goede
2016-03-10 13:19       ` Hans de Goede
2016-03-09 21:35 ` [PATCH 06/13] thermal: convert hisi_thermal " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-09 21:35 ` [PATCH 07/13] thermal: convert mtk_thermal " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-09 21:35   ` Eduardo Valentin
2016-03-09 21:35   ` Eduardo Valentin
2016-03-09 23:18   ` kbuild test robot
2016-03-09 23:18     ` kbuild test robot
2016-03-09 23:18     ` kbuild test robot
2016-03-09 21:35 ` [PATCH 08/13] thermal: convert qcom-spmi " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-09 21:35 ` [PATCH 09/13] thermal: convert rcar_thermal " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-09 21:35 ` [PATCH 10/13] thermal: convert rockchip_thermal " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] [PATCH 10/13] thermal: convert rockchip_thermal to use devm_thermal_zone_of_sensor_regi Eduardo Valentin
2016-03-09 21:35   ` [PATCH 10/13] thermal: convert rockchip_thermal to use devm_thermal_zone_of_sensor_register Eduardo Valentin
2016-03-09 21:35   ` Eduardo Valentin
2016-03-09 22:23   ` Heiko Stübner
2016-03-09 22:23     ` [lm-sensors] [PATCH 10/13] thermal: convert rockchip_thermal to use devm_thermal_zone_of_sensor_ Heiko Stübner
2016-03-09 22:23     ` [PATCH 10/13] thermal: convert rockchip_thermal to use devm_thermal_zone_of_sensor_register Heiko Stübner
2016-03-10  2:36   ` Caesar Wang
2016-03-10  2:36     ` [lm-sensors] [PATCH 10/13] thermal: convert rockchip_thermal to use devm_thermal_zone_of_sensor_ Caesar Wang
2016-03-10  2:36     ` [PATCH 10/13] thermal: convert rockchip_thermal to use devm_thermal_zone_of_sensor_register Caesar Wang
2016-03-09 21:35 ` [PATCH 11/13] thermal: convert exynos " Eduardo Valentin
2016-03-09 21:35   ` Eduardo Valentin
2016-03-09 21:35   ` Eduardo Valentin
2016-03-10  0:16   ` Krzysztof Kozlowski [this message]
2016-03-10  0:16     ` [lm-sensors] " Krzysztof Kozlowski
2016-03-10  0:16     ` Krzysztof Kozlowski
2016-03-14 19:48     ` Eduardo Valentin
2016-03-14 19:48       ` [lm-sensors] " Eduardo Valentin
2016-03-14 19:48       ` Eduardo Valentin
2016-03-10  9:16   ` Lukasz Majewski
2016-03-10  9:16     ` [lm-sensors] " Lukasz Majewski
2016-03-10  9:16     ` Lukasz Majewski
2016-03-09 21:35 ` [PATCH 12/13] thermal: convert tegra_thermal " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] [PATCH 12/13] thermal: convert tegra_thermal to use devm_thermal_zone_of_sensor_registe Eduardo Valentin
     [not found]   ` <1457559336-17652-13-git-send-email-edubezval-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-10  8:46     ` [PATCH 12/13] thermal: convert tegra_thermal to use devm_thermal_zone_of_sensor_register Wei Ni
2016-03-10  8:46       ` [lm-sensors] [PATCH 12/13] thermal: convert tegra_thermal to use devm_thermal_zone_of_sensor_reg Wei Ni
2016-03-10  8:46       ` [PATCH 12/13] thermal: convert tegra_thermal to use devm_thermal_zone_of_sensor_register Wei Ni
2016-03-14 21:16       ` Eduardo Valentin
2016-03-14 21:16         ` [lm-sensors] [PATCH 12/13] thermal: convert tegra_thermal to use devm_thermal_zone_of_sensor_reg Eduardo Valentin
     [not found]         ` <20160314211607.GC4740-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2016-03-15  5:42           ` [PATCH 12/13] thermal: convert tegra_thermal to use devm_thermal_zone_of_sensor_register Wei Ni
2016-03-15  5:42             ` [lm-sensors] [PATCH 12/13] thermal: convert tegra_thermal to use devm_thermal_zone_of_sensor_reg Wei Ni
2016-03-15  5:42             ` [PATCH 12/13] thermal: convert tegra_thermal to use devm_thermal_zone_of_sensor_register Wei Ni
2016-03-09 21:35 ` [PATCH 13/13] hwmon: convert ti-thermal " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-09 21:35 ` [PATCH 13/13] thermal: " Eduardo Valentin
2016-03-09 21:35   ` [lm-sensors] " Eduardo Valentin
2016-03-09 22:11   ` kbuild test robot
2016-03-09 22:11     ` [lm-sensors] [PATCH 13/13] thermal: convert ti-thermal to use devm_thermal_zone_of_sensor_regist kbuild test robot
2016-03-09 22:11     ` [PATCH 13/13] thermal: convert ti-thermal to use devm_thermal_zone_of_sensor_register kbuild test robot
2016-03-15 12:26   ` Keerthy
2016-03-15 12:38     ` [lm-sensors] [PATCH 13/13] thermal: convert ti-thermal to use devm_thermal_zone_of_sensor_regist Keerthy
2016-03-15 12:26     ` [PATCH 13/13] thermal: convert ti-thermal to use devm_thermal_zone_of_sensor_register Keerthy

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=56E0BCE4.6020309@samsung.com \
    --to=k.kozlowski@samsung.com \
    --cc=edubezval@gmail.com \
    --cc=kgene@kernel.org \
    --cc=l.majewski@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=lm-sensors@lm-sensors.org \
    --cc=rui.zhang@intel.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 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.