From 093512b9713999069b53193127ab0086e075a4f7 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sun, 13 Jan 2019 11:03:30 -0500 Subject: [PATCH] adccmds: Run gpio_adc_setup() before oid_alloc() Order the adc config code so that a shutdown from gpio_adc_setup() doesn't result in analog_in_shutdown() running on a 'struct analog_in' that hasn't yet been configured. Signed-off-by: Kevin O'Connor --- src/adccmds.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/adccmds.c b/src/adccmds.c index 09db9b9d..a27dc8c0 100644 --- a/src/adccmds.c +++ b/src/adccmds.c @@ -61,10 +61,11 @@ analog_in_event(struct timer *timer) void command_config_analog_in(uint32_t *args) { + struct gpio_adc pin = gpio_adc_setup(args[1]); struct analog_in *a = oid_alloc( args[0], command_config_analog_in, sizeof(*a)); a->timer.func = analog_in_event; - a->pin = gpio_adc_setup(args[1]); + a->pin = pin; a->state = 1; } DECL_COMMAND(command_config_analog_in, "config_analog_in oid=%c pin=%u");