[alsa-devel] WARNING: at sound/core/sound_oss.c:96 snd_oss_kernel_minor+0xdf/0x120 [snd]()
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 ]---
On Wed, Jan 6, 2010 at 5:53 PM, John Kacur jkacur@gmail.com 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 ]---
Here is a slightly different trace back of the same problem in case that helps anyone to debug it. Thanks!
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(+) snd_pcm btusb firewire_ohci sdhci_pci thinkpad_acpi sdhci snd_timer hwmon firewire_core bluetooth e1000e ata_generic mmc_core iTCO_wdt i2c_i801 iTCO_vendor_support ppdev snd tpm_tis i2c_core intel_agp wmi parport_pc parport ricoh_mmc pata_acpi joydev tpm pcspkr video tpm_bios output sr_mod crc_itu_t snd_page_alloc button soundcore cdrom ac battery rfkill sg ahci libata sd_mod scsi_mod crc_t10dif xfs exportfs uhci_hcd ohci_hcd ehci_hcd [last unloaded: scsi_wait_scan] Pid: 1571, comm: modprobe Not tainted 2.6.33-rc3 #1 Call Trace: [<ffffffffa029db25>] ? snd_oss_kernel_minor+0xdf/0x120 [snd] [<ffffffff8104338c>] warn_slowpath_common+0x7c/0xa9 [<ffffffff81043410>] warn_slowpath_fmt+0x41/0x43 [<ffffffffa029db25>] snd_oss_kernel_minor+0xdf/0x120 [snd] [<ffffffffa029dc7e>] snd_register_oss_device+0x2c/0x21a [snd] [<ffffffffa0240e1e>] snd_mixer_oss_notify_handler+0xa5/0x2e5 [snd_mixer_oss] [<ffffffff8137b1e7>] ? sub_preempt_count+0xa3/0xb6 [<ffffffff8137816d>] ? _raw_spin_unlock_irqrestore+0x6b/0x79 [<ffffffff811ba1fe>] ? __up_read+0x7c/0x85 [<ffffffffa024b000>] ? alsa_mixer_oss_init+0x0/0x3e [snd_mixer_oss] [<ffffffffa024b02a>] alsa_mixer_oss_init+0x2a/0x3e [snd_mixer_oss] [<ffffffff810001fa>] do_one_initcall+0x5f/0x154 [<ffffffff8107ff34>] sys_init_module+0xd7/0x234 [<ffffffff81002d5b>] system_call_fastpath+0x16/0x1b cfg80211: Using static regulatory domain info cfg80211: Regulatory domain: 00 (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2000 mBm) (2457000 KHz - 2482000 KHz @ 20000 KHz), (600 mBi, 2000 mBm) (2474000 KHz - 2494000 KHz @ 20000 KHz), (600 mBi, 2000 mBm) (5170000 KHz - 5250000 KHz @ 40000 KHz), (600 mBi, 2000 mBm) (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 2000 mBm) cfg80211: Calling CRDA to update world regulatory domain ---[ end trace bc1eb15b8cb7671c ]---
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?
thanks,
Takashi
On Tue, Jan 12, 2010 at 9:57 AM, Takashi Iwai tiwai@suse.de 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 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.
John
At Mon, 18 Jan 2010 09:15:23 +0100, John Kacur wrote:
On Tue, Jan 12, 2010 at 9:57 AM, Takashi Iwai tiwai@suse.de 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
On Mon, Jan 18, 2010 at 12:28 PM, Takashi Iwai tiwai@suse.de 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@suse.de 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@vger.kernel.org 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
At Mon, 18 Jan 2010 12:36:38 +0100, John Kacur wrote:
On Mon, Jan 18, 2010 at 12:28 PM, Takashi Iwai tiwai@suse.de 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@suse.de 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@vger.kernel.org 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; }
On Mon, 18 Jan 2010, Takashi Iwai wrote:
At Mon, 18 Jan 2010 12:36:38 +0100, John Kacur wrote:
On Mon, Jan 18, 2010 at 12:28 PM, Takashi Iwai tiwai@suse.de 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@suse.de 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@vger.kernel.org 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.
Okay, it took me a little bit to work it out that with SNDRV_CARDS = 32 the above is - the 29th bit. Kinda cryptic no?
Also, it does seem like the code intentionally makes use of that, at first I was concerned you would be turning of a debug message for one use case, but it seems consistent.
Even though the code looks obviously okay, I applied your patch, recompiled and booted, and the false message is gone.
Acked-by: John Kacur jkacur@redhat.com
Are you going to push that to Linus for 2.6.33?
Thank You.
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;
}
At Mon, 18 Jan 2010 15:48:29 +0100 (CET), John Kacur wrote:
On Mon, 18 Jan 2010, Takashi Iwai wrote:
At Mon, 18 Jan 2010 12:36:38 +0100, John Kacur wrote:
On Mon, Jan 18, 2010 at 12:28 PM, Takashi Iwai tiwai@suse.de 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@suse.de 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@vger.kernel.org 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.
Okay, it took me a little bit to work it out that with SNDRV_CARDS = 32 the above is - the 29th bit. Kinda cryptic no?
Heh, we live in zero-based world :) thinkpad-acpi tries to start from the last three slots, i.e. from 29 to 31.
Also, it does seem like the code intentionally makes use of that, at first I was concerned you would be turning of a debug message for one use case, but it seems consistent.
I guess it's for avoiding conflicts with other possible sound devices. Using the OSS device wasn't even considered, supposedly.
Even though the code looks obviously okay, I applied your patch, recompiled and booted, and the false message is gone.
Acked-by: John Kacur jkacur@redhat.com
Are you going to push that to Linus for 2.6.33?
Yep, it's in the queue to be sent in this evening.
thanks,
Takashi
participants (3)
-
John Kacur
-
John Kacur
-
Takashi Iwai