Re: URB IRQ fires on URB after usb_kill_urb() already completed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Good suggestion.  I'll add code to print it out before and after
> usb_kill_urb(), as well as from within the the IRQ handler and right
> before the call to usb_free_urb().

Added a quick debug line right before the call to usb_urb_kill(),
thinking that perhaps one of the things checked for at the top of that
function was causing the function to return without actually doing the
work (the function starts with a check of urb, dev, and ep for NULL).
That said though, it looks like the usage count is screwed up.  The
URB has a usage count of zero before the call to usb_kill_urb(), and
that's the exact URB that is referenced in the panic trace (ecb07680).

Is the usage_count member an indication that the URB has gone through
usb_submit_urb()?  That it's been linked into the hardware transfer
ring?

Devin

[ 3686.780204] au0828/0: stop_urb_transfer()
[ 3686.780213] au0828/0: killing urb ecb07340 dev=f69a74d0 ep=f6450780 uc=1
[ 3686.782979] au0828/0: killing urb ecb07680 dev=f69a74d0 ep=f6450780 uc=0
[ 3686.783002] au0828/0: killing urb ecb070d0 dev=f69a74d0 ep=f6450780 uc=1
[ 3686.785767] BUG: unable to handle kernel paging request at 6b6b6b6f
[ 3686.785960] IP: [<c149bc1e>] usb_hcd_unlink_urb_from_ep+0x1e/0x40
[ 3686.786129] *pdpt = 0000000031c9f001 *pde = 0000000000000000
[ 3686.786283] Oops: 0002 [#1] SMP
[ 3686.786379] Modules linked in: cuse nfsd(F) auth_rpcgss(F)
nfs_acl(F) nfs(F) lockd(F) sunrpc(F) fscache(F) snd_usb_audio
snd_usbmidi_lib au8522_dig(OF) btusb joydev(F) bluetooth xc5000(OF)
tuner(OF) au8522_decoder(OF) au8522_common(OF) hid_generic kvm_amd(F)
kvm(F) microcode(F) snd_hda_codec_realtek sp5100_tco
snd_hda_codec_hdmi k10temp arc4(F) iwldvm mac80211 au0828(OF) iwlwifi
tveeprom(OF) videobuf_vmalloc(OF) videobuf_core(OF) v4l2_common(OF)
dvb_core(OF) videodev(OF) snd_hda_intel media(OF) cfg80211
snd_seq_midi(F) snd_seq_midi_event(F) usbhid snd_hda_codec
snd_rawmidi(F) hid snd_hwdep(F) snd_seq(F) snd_pcm(F)
snd_seq_device(F) snd_page_alloc(F) snd_timer(F) i2c_piix4snd(F)
ohci_pci radeon soundcore(F) ttm drm_kms_helper drm i2c_algo_bit
mac_hid lp(F) parport(F) r8169 ahci(F) libahci(F) mii(F)
[ 3686.788502]
[ 3686.788520] CPU: 1 PID: 0 Comm: swapper/1 Tainted: GF          O
3.12.0-031200rc7-generic #201310271935
[ 3686.788741] Hardware name: To be filled by O.E.M. To be filled by
O.E.M./Inagua CRB, BIOS 4.6.5 02/12/2014
[ 3686.788971] task: f70ce800 ti: f7108000 task.ti: f70c6000
[ 3686.789106] EIP: 0060:[<c149bc1e>] EFLAGS: 00210046 CPU: 1
[ 3686.789243] EIP is at usb_hcd_unlink_urb_from_ep+0x1e/0x40
[ 3686.789378] EAX: ecb07694 EBX: ecb07680 ECX: 6b6b6b6b EDX: 6b6b6b6b
[ 3686.789529] ESI: ecb07680 EDI: f6839860 EBP: f7109e50 ESP: f7109e4c
[ 3686.789680]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 3686.789811] CR0: 8005003b CR2: 6b6b6b6f CR3: 364a0000 CR4: 000007f0
[ 3686.789961] Stack:
[ 3686.790015]  f6839a64 f7109e68 c14ae94a ffffff8d ec92d3c0 ec92d99c
f4bf43f0 f7109ecc
[ 3686.790255]  c14af863 2c92d060 00000000 00200082 000f4240 00000007
f68399e0 f7109ea0
[ 3686.790492]  c1075a26 000f4240 03010000 f686bcc0 ec92d3c0 f4bf4400
00000001 f68399a8
[ 3686.790730] Call Trace:
[ 3686.790804]  [<c14ae94a>] ehci_urb_done+0x4a/0x90
[ 3686.790926]  [<c14af863>] qh_completions+0x203/0x580
[ 3686.791056]  [<c1075a26>] ? hrtimer_start_range_ns+0x26/0x30
[ 3686.791202]  [<c14b0738>] end_unlink_async+0x108/0x1f0
[ 3686.791333]  [<c14b3141>] ehci_irq+0xf1/0x430
[ 3686.791445]  [<c107b96f>] ? __wake_up+0x3f/0x50
[ 3686.791563]  [<c13e3aa8>] ? serial8250_tx_chars+0xe8/0x130
[ 3686.791701]  [<c13e3fa5>] ? serial8250_handle_irq.part.14+0x75/0xa0
[ 3686.791857]  [<c149cb23>] usb_hcd_irq+0x33/0x50
[ 3686.791975]  [<c10a27d5>] handle_irq_event_percpu+0x35/0x1a0
[ 3686.792119]  [<c103bf5d>] ? __unmask_ioapic+0x2d/0x40
[ 3686.792248]  [<c10a2971>] handle_irq_event+0x31/0x50
[ 3686.792375]  [<c10a52a0>] ? unmask_irq+0x30/0x30
[ 3686.792494]  [<c10a52ee>] handle_fasteoi_irq+0x4e/0xe0
[ 3686.792620]  <IRQ>
[ 3686.792675]
[ 3686.792727]  [<c164ceac>] ? do_IRQ+0x3c/0xb0
[ 3686.792806]  [<c164cc73>] ? common_interrupt+0x33/0x38
[ 3686.792940]  [<c152375e>] ? cpuidle_enter_state+0x3e/0xd0
[ 3686.793077]  [<c152388e>] ? cpuidle_idle_call+0x9e/0x1d0
[ 3686.793213]  [<c10173dd>] ? arch_cpu_idle+0xd/0x30
[ 3686.793336]  [<c10a1eab>] ? cpu_startup_entry+0x9b/0x200
[ 3686.793470]  [<c1039a5b>] ? setup_APIC_timer+0xab/0x130
[ 3686.793603]  [<c1038188>] ? start_secondary+0x208/0x2d0
[ 3686.793731] Code: eb d6 83 cb ff eb d1 8d b6 00 00 00 00 55 89 e5
53 3e 8d 74 26 00 b8 26 8b b5 c1 89 d3 e8 ab 95 1a 00 8b 4b 14 8d 43
14 8b 53 18 <89> 51 04 89 0a 89 43 14 89 43 18 b8 26 8b b5 c1 e8 1d 95
1a 00
[ 3686.800948] EIP: [<c149bc1e>] usb_hcd_unlink_urb_from_ep+0x1e/0x40
SS:ESP 0068:f7109e4c
[ 3686.807525] CR2: 000000006b6b6b6f



-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux