| From 53cc43a7d0bee477d43021d27177259fcc83a8f2 Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Tue, 22 Nov 2016 18:11:08 +0100 |
| Subject: [PATCH] ASoC: cht_bsw_rt5645: Fix leftover kmalloc |
| |
| commit a823a17981a73faa115bc0f7eda0190763075e2c upstream. |
| |
| cht_bsw_rt5645 driver allocates the own codec_id string but doesn't |
| release it. For simplicity, put the string in cht_mc_private; then |
| the string is allocated in a shot and released altogether. |
| |
| Fixes: c8560b7c917f ("ASoC: cht_bsw_rt5645: Fix writing to string literal") |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/sound/soc/intel/boards/cht_bsw_rt5645.c b/sound/soc/intel/boards/cht_bsw_rt5645.c |
| index 56056ed7fcfd..16c94c45ce50 100644 |
| --- a/sound/soc/intel/boards/cht_bsw_rt5645.c |
| +++ b/sound/soc/intel/boards/cht_bsw_rt5645.c |
| @@ -44,6 +44,7 @@ struct cht_acpi_card { |
| struct cht_mc_private { |
| struct snd_soc_jack jack; |
| struct cht_acpi_card *acpi_card; |
| + char codec_name[16]; |
| }; |
| |
| static inline struct snd_soc_dai *cht_get_codec_dai(struct snd_soc_card *card) |
| @@ -354,7 +355,6 @@ static int snd_cht_mc_probe(struct platform_device *pdev) |
| int i; |
| struct cht_mc_private *drv; |
| struct snd_soc_card *card = snd_soc_cards[0].soc_card; |
| - char codec_name[16]; |
| struct sst_acpi_mach *mach; |
| const char *i2c_name = NULL; |
| int dai_index = 0; |
| @@ -374,12 +374,12 @@ static int snd_cht_mc_probe(struct platform_device *pdev) |
| } |
| card->dev = &pdev->dev; |
| mach = card->dev->platform_data; |
| - sprintf(codec_name, "i2c-%s:00", drv->acpi_card->codec_id); |
| + sprintf(drv->codec_name, "i2c-%s:00", drv->acpi_card->codec_id); |
| |
| /* set correct codec name */ |
| for (i = 0; i < ARRAY_SIZE(cht_dailink); i++) |
| if (!strcmp(card->dai_link[i].codec_name, "i2c-10EC5645:00")) { |
| - card->dai_link[i].codec_name = kstrdup(codec_name, GFP_KERNEL); |
| + card->dai_link[i].codec_name = drv->codec_name; |
| dai_index = i; |
| } |
| |
| -- |
| 2.10.1 |
| |