diff options
author | Takashi Iwai <tiwai@suse.de> | 2015-10-05 16:55:09 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2015-10-05 16:55:09 +0200 |
commit | 225db5762dc1a35b26850477ffa06e5cd0097243 (patch) | |
tree | c4a493a4022a6103b8a4e224efe682c9beac9ac5 /sound/synth | |
parent | c7e1008048a97148d3aecae742f66fb2f944644c (diff) | |
download | linux-225db5762dc1a35b26850477ffa06e5cd0097243.tar.gz linux-225db5762dc1a35b26850477ffa06e5cd0097243.tar.bz2 linux-225db5762dc1a35b26850477ffa06e5cd0097243.zip |
ALSA: synth: Fix conflicting OSS device registration on AWE32
When OSS emulation is loaded on ISA SB AWE32 chip, we get now kernel
warnings like:
WARNING: CPU: 0 PID: 2791 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x51/0x80()
sysfs: cannot create duplicate filename '/devices/isa/sbawe.0/sound/card0/seq-oss-0-0'
It's because both emux synth and opl3 drivers try to register their
OSS device object with the same static index number 0. This hasn't
been a big problem until the recent rewrite of device management code
(that exposes sysfs at the same time), but it's been an obvious bug.
This patch works around it just by using a different index number of
emux synth object. There can be a more elegant way to fix, but it's
enough for now, as this code won't be touched so often, in anyway.
Reported-and-tested-by: Michael Shell <list1@michaelshell.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/synth')
-rw-r--r-- | sound/synth/emux/emux_oss.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/synth/emux/emux_oss.c b/sound/synth/emux/emux_oss.c index 82e350e9501c..ac75816ada7c 100644 --- a/sound/synth/emux/emux_oss.c +++ b/sound/synth/emux/emux_oss.c @@ -69,7 +69,8 @@ snd_emux_init_seq_oss(struct snd_emux *emu) struct snd_seq_oss_reg *arg; struct snd_seq_device *dev; - if (snd_seq_device_new(emu->card, 0, SNDRV_SEQ_DEV_ID_OSS, + /* using device#1 here for avoiding conflicts with OPL3 */ + if (snd_seq_device_new(emu->card, 1, SNDRV_SEQ_DEV_ID_OSS, sizeof(struct snd_seq_oss_reg), &dev) < 0) return; |