summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Ranostay <mranostay@embeddedalley.com>2008-10-25 07:05:29 +0200
committerTakashi Iwai <tiwai@suse.de>2008-10-27 08:15:14 +0100
commit282cd76ffca781013151344c4b0f9229e9ea3c35 (patch)
treed6a201558af22f21aeff7e3340095410fa5984d9
parentALSA: jack: lineout support to jack abstraction layer (diff)
downloadlinux-282cd76ffca781013151344c4b0f9229e9ea3c35.tar.xz
linux-282cd76ffca781013151344c4b0f9229e9ea3c35.zip
ALSA: hda: dynamic jack id
This patch duplicates the jack->id pointer with kstrdup() to prevent scoping issues from calling autoprobing functions from the HDA section. Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/core/jack.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/core/jack.c b/sound/core/jack.c
index c4bb9bad3133..438445f77d6d 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -34,6 +34,7 @@ static int snd_jack_dev_free(struct snd_device *device)
else
input_free_device(jack->input_dev);
+ kfree(jack->id);
kfree(jack);
return 0;
@@ -87,7 +88,7 @@ int snd_jack_new(struct snd_card *card, const char *id, int type,
if (jack == NULL)
return -ENOMEM;
- jack->id = id;
+ jack->id = kstrdup(id, GFP_KERNEL);
jack->input_dev = input_allocate_device();
if (jack->input_dev == NULL) {