diff options
Diffstat (limited to 'sound/core/sound.c')
-rw-r--r-- | sound/core/sound.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sound/core/sound.c b/sound/core/sound.c index 8dc7a3b32b98..7b486c4d70db 100644 --- a/sound/core/sound.c +++ b/sound/core/sound.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Advanced Linux Sound Architecture | 2 | * Advanced Linux Sound Architecture |
3 | * Copyright (c) by Jaroslav Kysela <perex@suse.cz> | 3 | * Copyright (c) by Jaroslav Kysela <perex@perex.cz> |
4 | * | 4 | * |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
@@ -42,7 +42,7 @@ EXPORT_SYMBOL(snd_major); | |||
42 | 42 | ||
43 | static int cards_limit = 1; | 43 | static int cards_limit = 1; |
44 | 44 | ||
45 | MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>"); | 45 | MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>"); |
46 | MODULE_DESCRIPTION("Advanced Linux Sound Architecture driver for soundcards."); | 46 | MODULE_DESCRIPTION("Advanced Linux Sound Architecture driver for soundcards."); |
47 | MODULE_LICENSE("GPL"); | 47 | MODULE_LICENSE("GPL"); |
48 | module_param(major, int, 0444); | 48 | module_param(major, int, 0444); |
@@ -266,6 +266,14 @@ int snd_register_device_for_dev(int type, struct snd_card *card, int dev, | |||
266 | snd_minors[minor] = preg; | 266 | snd_minors[minor] = preg; |
267 | preg->dev = device_create(sound_class, device, MKDEV(major, minor), | 267 | preg->dev = device_create(sound_class, device, MKDEV(major, minor), |
268 | "%s", name); | 268 | "%s", name); |
269 | if (IS_ERR(preg->dev)) { | ||
270 | snd_minors[minor] = NULL; | ||
271 | mutex_unlock(&sound_mutex); | ||
272 | minor = PTR_ERR(preg->dev); | ||
273 | kfree(preg); | ||
274 | return minor; | ||
275 | } | ||
276 | |||
269 | if (preg->dev) | 277 | if (preg->dev) |
270 | dev_set_drvdata(preg->dev, private_data); | 278 | dev_set_drvdata(preg->dev, private_data); |
271 | 279 | ||