|
@@ -266,6 +266,14 @@ int snd_register_device_for_dev(int type, struct snd_card *card, int dev,
|
|
|
snd_minors[minor] = preg;
|
|
|
preg->dev = device_create(sound_class, device, MKDEV(major, minor),
|
|
|
"%s", name);
|
|
|
+ if (IS_ERR(preg->dev)) {
|
|
|
+ snd_minors[minor] = NULL;
|
|
|
+ mutex_unlock(&sound_mutex);
|
|
|
+ minor = PTR_ERR(preg->dev);
|
|
|
+ kfree(preg);
|
|
|
+ return minor;
|
|
|
+ }
|
|
|
+
|
|
|
if (preg->dev)
|
|
|
dev_set_drvdata(preg->dev, private_data);
|
|
|
|