|
@@ -245,8 +245,13 @@ snd_seq_oss_synth_setup(struct seq_oss_devinfo *dp)
|
|
|
info->nr_voices = rec->nr_voices;
|
|
|
if (info->nr_voices > 0) {
|
|
|
info->ch = kcalloc(info->nr_voices, sizeof(struct seq_oss_chinfo), GFP_KERNEL);
|
|
|
- if (!info->ch)
|
|
|
- BUG();
|
|
|
+ if (!info->ch) {
|
|
|
+ snd_printk(KERN_ERR "Cannot malloc\n");
|
|
|
+ rec->oper.close(&info->arg);
|
|
|
+ module_put(rec->oper.owner);
|
|
|
+ snd_use_lock_free(&rec->use_lock);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
reset_channels(info);
|
|
|
}
|
|
|
debug_printk(("synth %d assigned\n", i));
|