git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
sound
/
core
/
seq
/
oss
/
seq_oss.c
diff --git
a/sound/core/seq/oss/seq_oss.c
b/sound/core/seq/oss/seq_oss.c
index
27c5cac
..
53eb754
100644
(file)
--- a/
sound/core/seq/oss/seq_oss.c
+++ b/
sound/core/seq/oss/seq_oss.c
@@
-78,16
+78,17
@@
static int __init alsa_seq_oss_init(void)
snd_seq_oss_synth_unregister,
};
snd_seq_oss_synth_unregister,
};
+ snd_seq_autoload_lock();
if ((rc = register_device()) < 0)
if ((rc = register_device()) < 0)
-
return rc
;
+
goto error
;
if ((rc = register_proc()) < 0) {
unregister_device();
if ((rc = register_proc()) < 0) {
unregister_device();
-
return rc
;
+
goto error
;
}
if ((rc = snd_seq_oss_create_client()) < 0) {
unregister_proc();
unregister_device();
}
if ((rc = snd_seq_oss_create_client()) < 0) {
unregister_proc();
unregister_device();
-
return rc
;
+
goto error
;
}
if ((rc = snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_OSS, &ops,
}
if ((rc = snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_OSS, &ops,
@@
-95,12
+96,15
@@
static int __init alsa_seq_oss_init(void)
snd_seq_oss_delete_client();
unregister_proc();
unregister_device();
snd_seq_oss_delete_client();
unregister_proc();
unregister_device();
-
return rc
;
+
goto error
;
}
/* success */
snd_seq_oss_synth_init();
}
/* success */
snd_seq_oss_synth_init();
- return 0;
+
+ error:
+ snd_seq_autoload_unlock();
+ return rc;
}
static void __exit alsa_seq_oss_exit(void)
}
static void __exit alsa_seq_oss_exit(void)