This error handling code can be reached before st->ts_input is initialized, so it is safer to always use the original name, input_dev. A simplified version of the semantic match that finds this problem is: // <smpl> @r exists@ local idexpression struct input_dev * x; expression ra,rr; @@ * x = input_allocate_device(...) ... when != x = rr when != input_free_device(x,...) when != if (...) { ... input_free_device(x,...) ...} if(...) { ... when != x = ra when forall * when != input_free_device(x,...) \(return <+...x...+>; \| return...; \) } // </smpl> Signed-off-by: Himangi Saraogi <himangi774@xxxxxxxxx> --- drivers/iio/adc/at91_adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c index 3b5bacd..73b2bb5 100644 --- a/drivers/iio/adc/at91_adc.c +++ b/drivers/iio/adc/at91_adc.c @@ -1114,7 +1114,7 @@ static int at91_ts_register(struct at91_adc_state *st, return ret; err: - input_free_device(st->ts_input); + input_free_device(input); return ret; } -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html