]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
ASoC: codecs: rt298: Fix NULL jack in interrupt
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Thu, 7 Jul 2022 12:56:57 +0000 (14:56 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 11 Jul 2022 13:59:06 +0000 (14:59 +0100)
Set rt298->jack to passed value in mic_detect, otherwise when jack is
set to NULL on next interrupt call, we may use freed pointer.

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-2-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt298.c

index 266a2cc55b8d69340d2070e97aa57b84a536204d..6a615943f9835757a8558602bc16dfce5bbfcf06 100644 (file)
@@ -335,6 +335,8 @@ static int rt298_mic_detect(struct snd_soc_component *component,
        bool mic = false;
        int status = 0;
 
+       rt298->jack = jack;
+
        /* If jack in NULL, disable HS jack */
        if (!jack) {
                regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x0);
@@ -344,7 +346,6 @@ static int rt298_mic_detect(struct snd_soc_component *component,
                return 0;
        }
 
-       rt298->jack = jack;
        regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x2);
 
        rt298_jack_detect(rt298, &hp, &mic);