ASoC: codecs: rt286: Set component to NULL on remove
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Thu, 7 Jul 2022 12:56:59 +0000 (14:56 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 11 Jul 2022 13:59:08 +0000 (14:59 +0100)
Make sure that component is set to proper value, otherwise we may
dereference freed component in interrupt.

Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20220707125701.3518263-4-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt286.c

index b2b0b2b..c4f7c4c 100644 (file)
@@ -960,6 +960,7 @@ static void rt286_remove(struct snd_soc_component *component)
        struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component);
 
        cancel_delayed_work_sync(&rt286->jack_detect_work);
+       rt286->component = NULL;
 }
 
 #ifdef CONFIG_PM