Преглед изворни кода

ASoC: txx9aclc: dynamically allocate dmaengine devname

Use kasprintf to allocate temporary devname string instead of a
fixed size string.
This fixes "FIXME" introduced on removal of BUS_ID_SIZE.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Atsushi Nemoto пре 16 година
родитељ
комит
647613e97f
1 измењених фајлова са 6 додато и 4 уклоњено
  1. 6 4
      sound/soc/txx9/txx9aclc.c

+ 6 - 4
sound/soc/txx9/txx9aclc.c

@@ -297,15 +297,17 @@ static int txx9aclc_pcm_new(struct snd_card *card, struct snd_soc_dai *dai,
 static bool filter(struct dma_chan *chan, void *param)
 static bool filter(struct dma_chan *chan, void *param)
 {
 {
 	struct txx9aclc_dmadata *dmadata = param;
 	struct txx9aclc_dmadata *dmadata = param;
-	char devname[20 + 2]; /* FIXME: old BUS_ID_SIZE + 2 */
+	char *devname;
+	bool found = false;
 
 
-	snprintf(devname, sizeof(devname), "%s.%d", dmadata->dma_res->name,
+	devname = kasprintf(GFP_KERNEL, "%s.%d", dmadata->dma_res->name,
 		(int)dmadata->dma_res->start);
 		(int)dmadata->dma_res->start);
 	if (strcmp(dev_name(chan->device->dev), devname) == 0) {
 	if (strcmp(dev_name(chan->device->dev), devname) == 0) {
 		chan->private = &dmadata->dma_slave;
 		chan->private = &dmadata->dma_slave;
-		return true;
+		found = true;
 	}
 	}
-	return false;
+	kfree(devname);
+	return found;
 }
 }
 
 
 static int txx9aclc_dma_init(struct txx9aclc_soc_device *dev,
 static int txx9aclc_dma_init(struct txx9aclc_soc_device *dev,