[alsa-devel] snd_usb_caiaq bug?

Takashi Iwai tiwai at suse.de
Wed Jan 7 11:56:38 CET 2009


At Sun, 4 Jan 2009 17:29:47 +0100,
Marco Santamaria wrote:
> 
> Hi,
> 
> it's about one year that I'm using my Native Instruments Audio Kontrol 1
> (USB2 audio/MIDI interface) only with audio applications and it has been
> working well so far.
> Now I'm trying to use it with Rosegarden (MIDI) and, as soon as I start
> Rosegarden, JACK crashes, the process jackd becomes "uninterruptible" and
> with the command dmesg I find the following new lines
> 
> [ 1935.173876] BUG: unable to handle kernel NULL pointer dereference at
> virtual address 00000044
> [ 1935.173885] printing eip: f8a5f6fd *pde = 00000000
> [ 1935.173891] Oops: 0000 [#1] PREEMPT SMP
> [ 1935.173896] Modules linked in: isofs udf ipv6 af_packet i915 drm rfcomm
> l2cap bluetooth ppdev acpi_cpufreq cpufreq_ondemand cpufreq_conservative
> cpufreq_stats freq_table cpufreq_userspace cpufreq_powersave dock container
> sbs sbshc iptable_filter ip_tables x_tables sbp2 parport_pc lp parport
> snd_hda_intel snd_usb_caiaq snd_hwdep snd_pcm_oss snd_mixer_oss arc4
> snd_seq_oss snd_pcm ecb blkcipher snd_seq_midi snd_page_alloc joydev
> snd_rawmidi snd_seq_midi_event snd_seq iwl3945 sdhci serio_raw mmc_core
> iwlwifi_mac80211 video output cfg80211 battery led_class ac snd_timer
> snd_seq_device wmi_acer button snd evdev dcdbas iTCO_wdt iTCO_vendor_support
> intel_agp shpchp pci_hotplug pcspkr soundcore agpgart psmouse ext3 jbd
> mbcache sg sr_mod cdrom sd_mod b44 ata_generic ssb mii ohci1394 ieee1394
> ata_piix pata_acpi libata scsi_mod ehci_hcd uhci_hcd usbcore thermal
> processor fan fuse
> [ 1935.173964]
> [ 1935.173967] Pid: 1421, comm: IRQ-18 Not tainted (2.6.24-19-rt #1)
> [ 1935.173970] EIP: 0060:[<f8a5f6fd>] EFLAGS: 00010292 CPU: 1
> [ 1935.173979] EIP is at snd_rawmidi_transmit_peek+0x1d/0x100 [snd_rawmidi]
> [ 1935.173982] EAX: 00000000 EBX: f7106264 ECX: 0000003d EDX: f7106407
> [ 1935.173985] ESI: ffffffea EDI: 00000000 EBP: f7106407 ESP: df85be38
> [ 1935.173988]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
> preempt:00000001
> [ 1935.173991] Process IRQ-18 (pid: 1421, ti=df85a000 task=f7d45320
> task.ti=df85a000)
> [ 1935.173993] Stack: 0000003d 00000000 f7106264 00000000 00000000 df83fc00
> f8b8cc09 00000000
> [ 1935.174000]        f7106264 f710630c 00000000 df83fc00 df83fc00 f710630c
> f888c888 00000008
> [ 1935.174007]        df83fd08 00000000 f710630c f8870770 f728a0c0 f728a0c0
> ffffff8d f721e180
> [ 1935.174014] Call Trace:
> [ 1935.174021]  [<f8b8cc09>] snd_usb_caiaq_midi_send+0x29/0x80
> [snd_usb_caiaq]
> [ 1935.174034]  [<f888c888>] usb_hcd_giveback_urb+0x48/0xc0 [usbcore]
> [ 1935.174064]  [<f8870770>] ehci_urb_done+0x70/0xb0 [ehci_hcd]
> [ 1935.174075]  [<f887153f>] qh_completions+0x24f/0x430 [ehci_hcd]
> [ 1935.174087]  [<f8870770>] ehci_urb_done+0x70/0xb0 [ehci_hcd]
> [ 1935.174096]  [<f887293e>] ehci_work+0x51e/0x810 [ehci_hcd]
> [ 1935.174103]  [<c010b1e3>] sched_clock+0x13/0x40
> [ 1935.174116]  [<c0129199>] dequeue_task_rt+0xb9/0x1c0
> [ 1935.174129]  [<f8875498>] ehci_irq+0x158/0x1c0 [ehci_hcd]
> [ 1935.174142]  [<f888cb7b>] usb_hcd_irq+0x2b/0x60 [usbcore]
> [ 1935.174166]  [<c016a9cc>] handle_IRQ_event+0x5c/0x100
> [ 1935.174178]  [<c016b00a>] thread_simple_irq+0x4a/0x90
> [ 1935.174185]  [<c016b959>] do_irqd+0x229/0x290
> [ 1935.174194]  [<c016b730>] do_irqd+0x0/0x290
> [ 1935.174199]  [<c0141fc2>] kthread+0x42/0x70
> [ 1935.174203]  [<c0141f80>] kthread+0x0/0x70
> [ 1935.174209]  [<c0105857>] kernel_thread_helper+0x7/0x10
> [ 1935.174217]  =======================
> [ 1935.174219] Code: 24 10 83 c4 14 c3 bf ea ff ff ff eb e3 90 83 ec 18 89
> 74 24 0c be ea ff ff ff 89 6c 24 14 89 d5 89 5c 24 08 89 7c 24 10 89 0c 24
> <8b> 58 44 8b 7b 04 85 ff 0f 84 8e 00 00 00 8d 43 20 31 f6 89 44
> [ 1935.174256] EIP: [<f8a5f6fd>] snd_rawmidi_transmit_peek+0x1d/0x100
> [snd_rawmidi] SS:ESP 0068:df85be38
> [ 1935.174265] ---[ end trace 9090d02b798b5496 ]---
> 
> I already asked to the Rosegarden and JACK people, but they couldn't help
> me: it seems to be a driver related problem,  as I can happily use
> Rosegarden if I run JACK with the internal Intel sound card.

How about the patch below?


thanks,

Takashi

---
diff --git a/sound/usb/caiaq/caiaq-midi.c b/sound/usb/caiaq/caiaq-midi.c
index 30b57f9..89a29f0 100644
--- a/sound/usb/caiaq/caiaq-midi.c
+++ b/sound/usb/caiaq/caiaq-midi.c
@@ -170,7 +170,6 @@ void snd_usb_caiaq_midi_output_done(struct urb* urb)
 		return;
 
 	snd_rawmidi_transmit_ack(dev->midi_out_substream, buf[2]);
-	dev->midi_out_substream = NULL;
 	snd_usb_caiaq_midi_send(dev, dev->midi_out_substream);
 }
 


More information about the Alsa-devel mailing list