You are not logged in.

#1 2013-07-31 13:32:54

Fedes
Member
From: Buenos Aires, Argentina
Registered: 2012-10-23
Posts: 36

Kernel > 3.8 - USB headset audio lost "cannot submit urb (err = -18)"

Hello,

Since the release of kernel 3.9, I cannot update my kernel from 3.8.8-2-ARCH, because of a bug that will make my usb headset stop working. When I'm using the mic in a hangout or with linphone, I lose audio and I start seeing this in the logs:

jul 31 09:25:27 glarchie17 kernel: cannot submit urb (err = -18)
jul 31 09:25:27 glarchie17 kernel: cannot submit urb (err = -18)

That only happens with kernel 3.9 and 3.10, but not with previous kernels. I found this bug report that seems to be the same:

http://www.mail-archive.com/linux-usb@v … 21758.html

But it wasn't updated after that. Is anyone else having this issue? This is really annoying because I really need to use my headsets at work, and I would like to update my kernel eventually.

Thanks,

Offline

#2 2013-08-06 17:37:43

Fedes
Member
From: Buenos Aires, Argentina
Registered: 2012-10-23
Posts: 36

Re: Kernel > 3.8 - USB headset audio lost "cannot submit urb (err = -18)"

Found more info here:

https://bugs.launchpad.net/ubuntu/+sour … ug/1191603

It seems it was caused by 2 commits from kernel 3.8, though for me 3.8 works fine. The issue is still not resolved upstream.

Offline

#3 2013-08-26 17:21:35

Fedes
Member
From: Buenos Aires, Argentina
Registered: 2012-10-23
Posts: 36

Re: Kernel > 3.8 - USB headset audio lost "cannot submit urb (err = -18)"

In case anyone else is interested, it seems a workaround was commited to 3.10.8. I'll try it out and update.

commit c72a0e036f9d80c609e608a723751343f1f5e9fc
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Aug 7 10:58:05 2013 -0400

    USB: EHCI: accept very late isochronous URBs
   
    commit 24f531371de17010f2b1b57d90e42240032e7733 upstream.
   
    Since commits 4005ad4390bf (EHCI: implement new semantics for
    URB_ISO_ASAP) and c75c5ab575af (ALSA: USB: adjust for changed 3.8 USB
    API) became widely distributed, people have been experiencing problems
    with audio transfers.  The slightest underrun causes complete failure,
    requiring the audio stream to be restarted.
   
    It turns out that the current isochronous API doesn't handle underruns
    in the best way.  The ALSA developers would much rather have transfers
    that are submitted too late be accepted and complete in the normal
    fashion, rather than being refused outright.
   
    This patch implements the requested approach.  When an isochronous URB
    submission is so late that all its scheduled slots have already
    expired, a debugging message will be printed in the log and the URB
    will be accepted as usual.  Assuming it was submitted by a completion
    handler (which is normally the case), it will complete shortly
    thereafter with all the usb_iso_packet_descriptor status fields marked
    -EXDEV.
   
    This fixes (for ehci-hcd)
   
        https://bugs.launchpad.net/ubuntu/+sour … ug/1191603
   
    It should be applied to all kernels that include commit 4005ad4390bf.

Offline

#4 2013-08-29 17:38:54

Fedes
Member
From: Buenos Aires, Argentina
Registered: 2012-10-23
Posts: 36

Re: Kernel > 3.8 - USB headset audio lost "cannot submit urb (err = -18)"

I've been using kernel 3.10.9-1 the last few days, and had every hangout and voip meeting without issues with the same USB headsets, so it seems the workaround implemented in 3.10.8 works for me.

Offline

Board footer

Powered by FluxBB