At Mon, 18 Jan 2010 12:36:38 +0100, John Kacur wrote: > > On Mon, Jan 18, 2010 at 12:28 PM, Takashi Iwai <tiwai@xxxxxxx> wrote: > > At Mon, 18 Jan 2010 09:15:23 +0100, > > John Kacur wrote: > >> > >> On Tue, Jan 12, 2010 at 9:57 AM, Takashi Iwai <tiwai@xxxxxxx> wrote: > >> > At Wed, 6 Jan 2010 17:53:24 +0100, > >> > John Kacur wrote: > >> >> > >> >> The following was in my 2.6.33-rc3 dmesg (of course that doesn't mean > >> >> that the problem didn't exist earlier too) > >> >> > >> >> WARNING: at /home/jkacur/rt.linux.git/sound/core/sound_oss.c:96 > >> >> snd_oss_kernel_minor+0xdf/0x120 [snd]() > >> >> Hardware name: 2241B48 > >> >> BUG? (minor < 0 || minor >= 128) > >> >> Modules linked in: snd_mixer_oss thinkpad_acpi(+) sdhci hwmon i2c_i801 > >> >> firewire_ohci snd_pcm mmc_core snd_timer cfg80211 firewire_core btusb > >> >> joydev iTCO_wdt bluetooth ata_generic e1000e i2c_core ppdev snd > >> >> battery ac iTCO_vendor_support parport_pc ricoh_mmc intel_agp > >> >> pata_acpi pcspkr parport tpm_tis video wmi output soundcore button tpm > >> >> rfkill sr_mod tpm_bios snd_page_alloc crc_itu_t cdrom sg ahci libata > >> >> sd_mod scsi_mod crc_t10dif xfs exportfs uhci_hcd ohci_hcd ehci_hcd > >> >> [last unloaded: scsi_wait_scan] > >> >> Pid: 1317, comm: modprobe Not tainted 2.6.33-rc3 #1 > >> >> Call Trace: > >> >> [<ffffffffa027bb25>] ? snd_oss_kernel_minor+0xdf/0x120 [snd] > >> >> [<ffffffff8104338c>] warn_slowpath_common+0x7c/0xa9 > >> >> [<ffffffff81043410>] warn_slowpath_fmt+0x41/0x43 > >> >> [<ffffffffa027bb25>] snd_oss_kernel_minor+0xdf/0x120 [snd] > >> >> [<ffffffffa027bc7e>] snd_register_oss_device+0x2c/0x21a [snd] > >> >> [<ffffffffa0271e1e>] snd_mixer_oss_notify_handler+0xa5/0x2e5 [snd_mixer_oss] > >> >> [<ffffffff81375e00>] ? __mutex_unlock_slowpath+0x5c/0x141 > >> >> [<ffffffff810710d5>] ? trace_hardirqs_on_caller+0x11f/0x14a > >> >> [<ffffffff8107110d>] ? trace_hardirqs_on+0xd/0xf > >> >> sdhci-pci 0000:15:00.2: SDHCI controller found [1180:0822] (rev 21) > >> >> sdhci-pci 0000:15:00.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18 > >> >> [<ffffffff81375ed3>] ? __mutex_unlock_slowpath+0x12f/0x141 > >> >> sdhci-pci 0000:15:00.2: Will use DMA mode even though HW doesn't fully > >> >> claim to support it. > >> >> Registered led device: mmc0:: > >> >> mmc0: SDHCI controller on PCI [0000:15:00.2] using DMA > >> >> [<ffffffffa027628a>] snd_card_register+0x135/0x14b [snd] > >> >> [<ffffffffa0370c88>] volume_init+0x335/0x3d2 [thinkpad_acpi] > >> >> [<ffffffffa037289b>] thinkpad_acpi_module_init+0x61f/0xa4f [thinkpad_acpi] > >> >> [<ffffffffa037227c>] ? thinkpad_acpi_module_init+0x0/0xa4f [thinkpad_acpi] > >> >> [<ffffffff810001fa>] do_one_initcall+0x5f/0x154 > >> >> [<ffffffff8107ff34>] sys_init_module+0xd7/0x234 > >> >> [<ffffffff81002d5b>] system_call_fastpath+0x16/0x1b > >> >> ---[ end trace a6d53dc318f09cb5 ]--- > >> > > >> > Looks like the code path from thinkpad-acpi... > >> > > >> > Could you add some printk's in sound/core/sound_oss.c:snd_oss_kernel_minor() > >> > to inspect which values are taken and calculated? > >> > > >> > >> I'm getting a card->number equal to 29, and a dev equal to 0. > > > > The card number 29 is very strange. Is it the correct number? > > You can see the sound instances in /proc/asound/cards. > > > >> The case is SNDRV_OSS_DEVICE_TYPE_MIXER: > >> So that does minor = SNDRV_MINOR_OSS(card->number, (dev ? > >> SNDRV_MINOR_OSS_MIXER1 : SNDRV_MINOR_OSS_MIXER)); > >> and according to the formula #define SNDRV_MINOR_OSS(card, > >> dev) (((card) << 4) | (dev)) > >> That works out to 464 which of course is not in the acceptable range > >> between 0 and 128. > > > > Do you build thinkpad-acpi as a module or built-in? How about the > > sound stuff? > > > > > > Takashi > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ > > > > cat /proc/asound/card > card0/ card29/ cards > [jkacur@tycho rt.linux.git]$ cat /proc/asound/cards > 0 [Intel ]: HDA-Intel - HDA Intel > HDA Intel at 0xfc020000 irq 31 > 29 [ThinkPadEC ]: ThinkPad EC - ThinkPad Console Audio Control > ThinkPad Console Audio Control at EC reg 0x30, > fw 7VHT12WW-1.01 OK, then the ALSA core driver behavior is correct. But, another question is why such a strange number is passed. Let me see the code... static int alsa_index = ~((1 << (SNDRV_CARDS - 3)) - 1); /* last three slots */ So, this behavior is intentional, too. In short, the warning message is just superfluous. The patch below fixes the issue. thanks, Takashi --- diff --git a/sound/core/sound_oss.c b/sound/core/sound_oss.c index 7fe1226..0c164e5 100644 --- a/sound/core/sound_oss.c +++ b/sound/core/sound_oss.c @@ -93,7 +93,7 @@ static int snd_oss_kernel_minor(int type, struct snd_card *card, int dev) default: return -EINVAL; } - if (snd_BUG_ON(minor < 0 || minor >= SNDRV_OSS_MINORS)) + if (minor < 0 || minor >= SNDRV_OSS_MINORS) return -EINVAL; return minor; } _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel