Skip to contentSkip to conversation

twl6040: fix wrong kfree in twl6040_remove and twl6040_codec_remove

PATCH In review Axel Lin 2 participants 3 messages Jul 16, 2010

Subsystems (2)
lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH 1/1 twl6040: fix wrong kfree in twl6040_remove and twl6040_codec_remove

Memory allocation part:
We allocate a memory in twl6040_codec_probe():

        priv = kzalloc(sizeof(struct twl6040_data), GFP_KERNEL);
        twl6040_codec = codec = &priv->codec;

Memory release part:
In twl6040_codec_remove() we should kfree(priv) instead of kfree(twl6040_codec). In twl6040_remove(), no need and should not kfree(codec).

---
 sound/soc/codecs/twl6040.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
sound/soc/codecs/twl6040.c +1 -2
index af36346..9d4a85f 100644
@@ -1068,7 +1068,6 @@ static int twl6040_remove(struct platform_device *pdev)
 	twl6040_set_bias_level(codec, SND_SOC_BIAS_OFF);
 	snd_soc_free_pcms(socdev);
 	snd_soc_dapm_free(socdev);
-	kfree(codec);
 
 	return 0;
 }
@@ -1214,7 +1213,7 @@ static int __devexit twl6040_codec_remove(struct platform_device *pdev)
 	snd_soc_unregister_dai(&twl6040_dai);
 	snd_soc_unregister_codec(twl6040_codec);
 
-	kfree(twl6040_codec);
+	kfree(priv);
 	twl6040_codec = NULL;
 
 	return 0;
Signature · 1 line
1.5.4.3
#1 lore raw
Quoted 4 lines · Axel Lin

Memory allocation part:
We allocate a memory in twl6040_codec_probe():

        priv = kzalloc(sizeof(struct twl6040_data), GFP_KERNEL);
        twl6040_codec = codec = &priv->codec;

Could you please try to take on board the feedback you were given yesterday about this sort of stuff? Both the feedback about formatting your patch so it's easy to apply and the collisions with other, more substantial, work that's going on?

author
#2 lore raw

hi Mark,

2010/7/16 Mark Brown <[email protected]>:

Quoted 11 lines · Axel Lin
Quoted 4 lines

Memory allocation part:
We allocate a memory in twl6040_codec_probe():
        priv = kzalloc(sizeof(struct twl6040_data), GFP_KERNEL); twl6040_codec = codec = &priv->codec;

Could you please try to take on board the feedback you were given yesterday about this sort of stuff?  Both the feedback about formatting your patch so it's easy to apply and the collisions with other, more substantial, work that's going on?

Ok. I will resend the patch.
( I just thought it may takes some time for review ) ( Due a vacation this weekend, I'll do it next Monday )

Regards,
Axel