From: Daniel Lezcano <daniel.lezcano@linaro.org> To: daniel.lezcano@linaro.org, tglx@linutronix.de Cc: linux-kernel@vger.kernel.org, Maxime Coquelin <mcoquelin.stm32@gmail.com>, linux-arm-kernel@lists.infradead.org (moderated list:ARM/STM32 ARCHITE...) Subject: [PATCH V2 47/63] clocksource/drivers/timer-stm32: Convert init function to return error Date: Thu, 16 Jun 2016 23:27:06 +0200 [thread overview] Message-ID: <1466112442-31105-48-git-send-email-daniel.lezcano@linaro.org> (raw) In-Reply-To: <1466112442-31105-1-git-send-email-daniel.lezcano@linaro.org> The init functions do not return any error. They behave as the following: - panic, thus leading to a kernel crash while another timer may work and make the system boot up correctly or - print an error and let the caller unaware if the state of the system Change that by converting the init functions to return an error conforming to the CLOCKSOURCE_OF_RET prototype. Proper error handling (rollback, errno value) will be changed later case by case, thus this change just return back an error or success in the init function. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> --- drivers/clocksource/timer-stm32.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/clocksource/timer-stm32.c b/drivers/clocksource/timer-stm32.c index f3dcb76..d5bf352 100644 --- a/drivers/clocksource/timer-stm32.c +++ b/drivers/clocksource/timer-stm32.c @@ -98,7 +98,7 @@ static struct stm32_clock_event_ddata clock_event_ddata = { }, }; -static void __init stm32_clockevent_init(struct device_node *np) +static int __init stm32_clockevent_init(struct device_node *np) { struct stm32_clock_event_ddata *data = &clock_event_ddata; struct clk *clk; @@ -130,12 +130,14 @@ static void __init stm32_clockevent_init(struct device_node *np) data->base = of_iomap(np, 0); if (!data->base) { + ret = -ENXIO; pr_err("failed to map registers for clockevent\n"); goto err_iomap; } irq = irq_of_parse_and_map(np, 0); if (!irq) { + ret = -EINVAL; pr_err("%s: failed to get irq.\n", np->full_name); goto err_get_irq; } @@ -173,7 +175,7 @@ static void __init stm32_clockevent_init(struct device_node *np) pr_info("%s: STM32 clockevent driver initialized (%d bits)\n", np->full_name, bits); - return; + return ret; err_get_irq: iounmap(data->base); @@ -182,7 +184,7 @@ err_iomap: err_clk_enable: clk_put(clk); err_clk_get: - return; + return ret; } -CLOCKSOURCE_OF_DECLARE(stm32, "st,stm32-timer", stm32_clockevent_init); +CLOCKSOURCE_OF_DECLARE_RET(stm32, "st,stm32-timer", stm32_clockevent_init); -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: daniel.lezcano@linaro.org (Daniel Lezcano) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH V2 47/63] clocksource/drivers/timer-stm32: Convert init function to return error Date: Thu, 16 Jun 2016 23:27:06 +0200 [thread overview] Message-ID: <1466112442-31105-48-git-send-email-daniel.lezcano@linaro.org> (raw) In-Reply-To: <1466112442-31105-1-git-send-email-daniel.lezcano@linaro.org> The init functions do not return any error. They behave as the following: - panic, thus leading to a kernel crash while another timer may work and make the system boot up correctly or - print an error and let the caller unaware if the state of the system Change that by converting the init functions to return an error conforming to the CLOCKSOURCE_OF_RET prototype. Proper error handling (rollback, errno value) will be changed later case by case, thus this change just return back an error or success in the init function. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> --- drivers/clocksource/timer-stm32.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/clocksource/timer-stm32.c b/drivers/clocksource/timer-stm32.c index f3dcb76..d5bf352 100644 --- a/drivers/clocksource/timer-stm32.c +++ b/drivers/clocksource/timer-stm32.c @@ -98,7 +98,7 @@ static struct stm32_clock_event_ddata clock_event_ddata = { }, }; -static void __init stm32_clockevent_init(struct device_node *np) +static int __init stm32_clockevent_init(struct device_node *np) { struct stm32_clock_event_ddata *data = &clock_event_ddata; struct clk *clk; @@ -130,12 +130,14 @@ static void __init stm32_clockevent_init(struct device_node *np) data->base = of_iomap(np, 0); if (!data->base) { + ret = -ENXIO; pr_err("failed to map registers for clockevent\n"); goto err_iomap; } irq = irq_of_parse_and_map(np, 0); if (!irq) { + ret = -EINVAL; pr_err("%s: failed to get irq.\n", np->full_name); goto err_get_irq; } @@ -173,7 +175,7 @@ static void __init stm32_clockevent_init(struct device_node *np) pr_info("%s: STM32 clockevent driver initialized (%d bits)\n", np->full_name, bits); - return; + return ret; err_get_irq: iounmap(data->base); @@ -182,7 +184,7 @@ err_iomap: err_clk_enable: clk_put(clk); err_clk_get: - return; + return ret; } -CLOCKSOURCE_OF_DECLARE(stm32, "st,stm32-timer", stm32_clockevent_init); +CLOCKSOURCE_OF_DECLARE_RET(stm32, "st,stm32-timer", stm32_clockevent_init); -- 1.9.1
next prev parent reply other threads:[~2016-06-16 21:33 UTC|newest] Thread overview: 239+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-06-16 21:26 [PATCH V2 00/63] clocksource/drivers/clksrc-of: Improve error handling Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 01/63] of: Add a new macro to declare_of for one parameter function returning a value Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-20 21:03 ` Rob Herring 2016-06-20 21:03 ` Rob Herring 2016-06-16 21:26 ` [PATCH V2 02/63] clocksource/drivers/clksrc-probe: Introduce init functions with return code Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 03/63] clocksource/drivers/rockchip_timer: Convert init function to return error Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-18 10:38 ` Heiko Stübner 2016-06-18 10:38 ` Heiko Stübner 2016-06-18 10:38 ` Heiko Stübner 2016-06-18 12:54 ` [PATCH V3] " Daniel Lezcano 2016-06-18 12:54 ` Daniel Lezcano 2016-06-18 13:47 ` Heiko Stübner 2016-06-18 13:47 ` Heiko Stübner 2016-06-16 21:26 ` [PATCH V2 04/63] clocksource/drivers/mkt_timer: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-17 16:16 ` Matthias Brugger 2016-06-17 16:16 ` Matthias Brugger 2016-06-17 16:16 ` Matthias Brugger 2016-06-16 21:26 ` [PATCH V2 05/63] clocksource/drivers/exynos_mct: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 06/63] clocksource/drivers/asm9260: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 07/63] clocksource/drivers/cadence_ttc: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:43 ` Sören Brinkmann 2016-06-16 21:43 ` Sören Brinkmann 2016-06-16 21:26 ` [PATCH V2 08/63] clocksource/drivers/st_lpc: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-20 7:39 ` Patrice Chotard 2016-06-20 7:39 ` Patrice Chotard 2016-06-20 11:33 ` Maxime Coquelin 2016-06-20 11:33 ` Maxime Coquelin 2016-06-16 21:26 ` [PATCH V2 09/63] clocksource/drivers/dw_apb_timer: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 10/63] clocksource/drivers/clps711x: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 11/63] clocksource/drivers/digitcolor: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-17 3:15 ` Baruch Siach 2016-06-17 3:15 ` Baruch Siach 2016-06-16 21:26 ` [PATCH V2 12/63] clocksource/drivers/armv7m_systick: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-20 11:31 ` Maxime Coquelin 2016-06-20 11:31 ` Maxime Coquelin 2016-06-16 21:26 ` [PATCH V2 13/63] clocksource/drivers/bcm2835_timer: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-26 3:10 ` Eric Anholt 2016-06-26 3:10 ` Eric Anholt 2016-06-16 21:26 ` [PATCH V2 14/63] clocksource/drivers/bcm_kona: " Daniel Lezcano 2016-06-20 17:22 ` Ray Jui 2016-06-20 17:40 ` Daniel Lezcano 2016-06-20 17:48 ` [PATCH V3] " Daniel Lezcano 2016-06-20 17:50 ` Ray Jui 2016-06-20 20:12 ` Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 15/63] clocksource/drivers/clksrc-dbx500: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-17 16:10 ` Linus Walleij 2016-06-17 16:10 ` Linus Walleij 2016-06-16 21:26 ` [PATCH V2 16/63] clocksource/drivers/fsl_ftm_timer: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 17/63] clocksource/drivers/arm_arch_timer: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 18/63] clocksource/drivers/arm_global_timer: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-20 11:32 ` Maxime Coquelin 2016-06-20 11:32 ` Maxime Coquelin 2016-06-16 21:26 ` [PATCH V2 19/63] clocksource/drivers/h8300_timer16: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 20/63] clocksource/drivers/h8300_tpu: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 21/63] " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 22/63] clocksource/drivers/mips-gic-timer: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 23/63] clocksource/drivers/moxart_timer: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 24/63] clocksource/drivers/mps2-timer: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 25/63] clocksource/drivers/mxs_timer: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-17 6:33 ` Uwe Kleine-König 2016-06-17 6:33 ` Uwe Kleine-König 2016-06-17 10:43 ` [PATCH V3] clocksource/drivers/mxs: " Daniel Lezcano 2016-06-20 9:15 ` [PATCH V2 25/63] clocksource/drivers/mxs_timer: " Liviu Dudau 2016-06-20 9:15 ` Liviu Dudau 2016-06-20 9:24 ` Daniel Lezcano 2016-06-20 9:24 ` Daniel Lezcano 2016-06-20 9:26 ` [PATCH V3] clocksource/drivers/mps2-timer: " Daniel Lezcano 2016-06-20 9:26 ` Daniel Lezcano 2016-06-20 9:42 ` liviu.dudau 2016-06-20 9:42 ` liviu.dudau at arm.com 2016-06-16 21:26 ` [PATCH V2 26/63] clocksource/drivers/nomadik-mtu: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 27/63] clocksource/drivers/pxa_timer: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 28/63] clocksource/drivers/qcom-timer: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 29/63] clocksource/drivers/samsung_pwm_timer: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 30/63] clocksource/drivers/sun4i_time: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 31/63] clocksource/drivers/tango_xtal: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-17 9:19 ` Mason 2016-06-17 10:26 ` [PATCH V3] " Daniel Lezcano 2016-06-17 12:35 ` Marc Gonzalez 2016-06-17 12:43 ` Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 32/63] clocksource/drivers/tegra20_timer: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 33/63] clocksource/drivers/time-armada-370-xp: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano [not found] ` <1466112442-31105-34-git-send-email-daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> 2016-06-17 7:21 ` Jon Hunter 2016-06-17 7:21 ` Jon Hunter 2016-06-17 8:09 ` Daniel Lezcano 2016-06-17 9:06 ` [PATCH V3] clocksource/drivers/tegra20: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 34/63] clocksource/drivers/time-efm32: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 35/63] clocksource/drivers/time-lpc32xx: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-17 6:52 ` Uwe Kleine-König 2016-06-17 6:52 ` Uwe Kleine-König 2016-06-17 8:44 ` [PATCH V3] clocksource/drivers/time-efm32: " Daniel Lezcano 2016-06-17 8:44 ` Daniel Lezcano 2016-06-17 9:46 ` Uwe Kleine-König 2016-06-17 9:46 ` Uwe Kleine-König 2016-06-16 21:26 ` [PATCH V2 36/63] clocksource/drivers/time-orion: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-20 17:08 ` Sylvain Lemieux 2016-06-20 17:08 ` Sylvain Lemieux 2016-06-16 21:26 ` [PATCH V2 37/63] clocksource/drivers/time-pistachio: " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 38/63] " Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 39/63] clocksource/drivers/timer-atlas7: " Daniel Lezcano 2016-06-16 21:26 ` Daniel Lezcano 2016-06-16 21:26 ` [PATCH V2 40/63] clocksource/drivers/timer-atmel-pit: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 41/63] clocksource/drivers/timer-atmel-st: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 42/63] clocksource/drivers/prima2: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 43/63] clocksource/drivers/timer-imx-gpt: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 44/63] clocksource/drivers/timer-integrator-ap: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 45/63] clocksource/drivers/timer-keystone: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-17 16:03 ` Santosh Shilimkar 2016-06-17 16:03 ` Santosh Shilimkar 2016-06-16 21:27 ` [PATCH V2 46/63] clocksource/drivers/timer-sp804: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano [this message] 2016-06-16 21:27 ` [PATCH V2 47/63] clocksource/drivers/timer-stm32: " Daniel Lezcano 2016-06-20 11:32 ` Maxime Coquelin 2016-06-20 11:32 ` Maxime Coquelin 2016-06-16 21:27 ` [PATCH V2 48/63] clocksource/drivers/timer-sun5i: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 49/63] clocksource/drivers/timer-ti-32k: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 50/63] clocksource/drivers/timer-u300: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-17 16:11 ` Linus Walleij 2016-06-17 16:11 ` Linus Walleij 2016-06-16 21:27 ` [PATCH V2 51/63] clocksource/drivers/versatile: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-20 9:13 ` Liviu Dudau 2016-06-20 9:13 ` Liviu Dudau 2016-06-16 21:27 ` [PATCH V2 52/63] clocksource/drivers/vf_pit_timer: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 53/63] clocksource/drivers/vt8500_timer: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 54/63] clocksource/drivers/zevio-timer: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 55/63] clocksource/drivers/timer-sp804: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 56/63] clocksource/drivers/microblaze: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 57/63] clocksource/drivers/ralink: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-17 8:54 ` John Crispin 2016-06-16 21:27 ` [PATCH V2 58/63] clocksource/drivers/nios2: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 59/63] clocksource/drivers/smp_twd: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 60/63] clocksource/drivers/nps: " Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 61/63] clocksource/drivers/arc: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-17 8:59 ` Vineet Gupta 2016-06-17 8:59 ` Vineet Gupta 2016-06-17 10:09 ` [PATCH V3] " Daniel Lezcano 2016-06-17 10:09 ` Daniel Lezcano 2016-06-17 14:30 ` Vineet Gupta 2016-06-17 14:30 ` Vineet Gupta 2016-06-24 4:06 ` Vineet Gupta 2016-06-24 4:06 ` Vineet Gupta 2016-06-24 6:41 ` Daniel Lezcano 2016-06-24 6:41 ` Daniel Lezcano 2016-06-24 7:52 ` Vineet Gupta 2016-06-24 7:52 ` Vineet Gupta 2016-06-24 7:55 ` Daniel Lezcano 2016-06-24 7:55 ` Daniel Lezcano 2016-06-16 21:27 ` [PATCH V2 62/63] clocksource/drivers/oxnas-rps: " Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-17 6:58 ` Neil Armstrong 2016-06-17 6:58 ` Neil Armstrong 2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-16 21:27 ` Daniel Lezcano 2016-06-17 8:36 ` Krzysztof Kozlowski 2016-06-17 8:36 ` Krzysztof Kozlowski 2016-06-17 8:36 ` Krzysztof Kozlowski 2016-06-17 8:36 ` Krzysztof Kozlowski 2016-06-17 14:33 ` Vineet Gupta 2016-06-17 16:04 ` Santosh Shilimkar 2016-06-17 16:04 ` Santosh Shilimkar 2016-06-17 16:04 ` Santosh Shilimkar 2016-06-17 16:04 ` Santosh Shilimkar 2016-06-18 13:48 ` Heiko Stübner 2016-06-18 13:48 ` Heiko Stübner 2016-06-18 13:48 ` Heiko Stübner 2016-06-18 13:48 ` Heiko Stübner 2016-06-20 7:43 ` Patrice Chotard 2016-06-20 7:43 ` Patrice Chotard 2016-06-20 7:43 ` Patrice Chotard 2016-06-20 7:43 ` Patrice Chotard 2016-06-20 7:43 ` Patrice Chotard [not found] ` <1466112442-31105-64-git-send-email-daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> 2016-06-17 16:18 ` Matthias Brugger 2016-06-17 16:18 ` Matthias Brugger 2016-06-17 16:18 ` Matthias Brugger 2016-06-17 16:18 ` Matthias Brugger 2016-06-20 9:17 ` Liviu Dudau 2016-06-20 9:17 ` Liviu Dudau 2016-06-20 9:17 ` Liviu Dudau 2016-06-20 9:17 ` Liviu Dudau 2016-06-20 17:03 ` Sylvain Lemieux 2016-06-20 17:03 ` Sylvain Lemieux 2016-06-20 17:03 ` Sylvain Lemieux 2016-06-20 17:03 ` Sylvain Lemieux 2016-06-20 9:19 ` Neil Armstrong 2016-06-20 9:19 ` Neil Armstrong 2016-06-20 9:19 ` Neil Armstrong 2016-06-20 9:19 ` Neil Armstrong 2016-06-21 6:00 ` Ray Jui 2016-06-21 6:00 ` Ray Jui 2016-06-21 6:00 ` Ray Jui 2016-06-21 6:00 ` Ray Jui 2016-06-21 6:45 ` Noam Camus 2016-06-21 6:45 ` Noam Camus 2016-06-21 6:45 ` Noam Camus 2016-06-21 6:45 ` Noam Camus 2016-06-21 6:45 ` Noam Camus 2016-06-24 7:13 ` Chen-Yu Tsai 2016-06-24 7:13 ` Chen-Yu Tsai 2016-06-24 7:13 ` Chen-Yu Tsai 2016-06-24 7:13 ` Chen-Yu Tsai 2016-06-24 20:12 ` Carlo Caione 2016-06-24 20:12 ` Carlo Caione 2016-06-24 20:12 ` Carlo Caione 2016-06-24 20:12 ` Carlo Caione
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=1466112442-31105-48-git-send-email-daniel.lezcano@linaro.org \ --to=daniel.lezcano@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mcoquelin.stm32@gmail.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: linkBe 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.