Re: sierra_write - usb_submit_urb(write bulk) failed with status = -12

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

 



On Tue, 26 May 2009, Dean Warren wrote:

> Using a Sierra Wireless Compass 888 on an Embedded ARM platform.
> 
> Kernel Version: 2.6.25.7
> Sierra Driver: v.1.6.0
> Host controller: Oxford-Semi using driver oxu210hp-hcd.c
> 
> Driver works fine on x86 and has been tested by Sierra Wireless on an ARM 
> platform. So this problem is platform specific.
> 
> Previous suggestions from this forum has suggested the problem may be with the 
> host controller?
> 
> The error manifests itself after I have insmod'd usbserial.ko and sierra.ko, 
> inserted the modem and then send a command to the modem, for 
> example: 'echo 'AT' > /dev/ttyUSB3'. The kernel reports the following:
> 
> "sierra ttyUSB3: sierra_open: submit urb 1 failed (-12) 4096
> sierra ttyUSB3: sierra_open: submit urb 2 failed (-12) 4096
> sierra ttyUSB3: sierra_open: submit urb 3 failed (-12) 4096
> sierra ttyUSB3: sierra_open: submit urb 4 failed (-12) 4096
> sierra ttyUSB3: sierra_open: submit urb 5 failed (-12) 4096
> sierra ttyUSB3: sierra_open: submit urb 6 failed (-12) 4096
> sierra ttyUSB3: sierra_open: submit urb 7 failed (-12) 4096
> sierra ttyUSB3: sierra_open: submit irq_in urb failed -12
> sierra ttyUSB3: sierra_write - usb_submit_urb(write bulk) failed with status = -
> 12
> -bash: echo: write error: Cannot allocate memory"
> 
> On investigation I can trace the failure through as follows:
> 
> 1) sierra.c[]::sierra_open() calls hcd.c::usb_submit_urb() at line 729
> 2) hcd.c::usb_submit_urb() calls oxu210hp-hcd.c::__oxu_urb_enqueue() at line 
> 1325
> 3) oxu210hp-hcd.c::__oxu_urb_enqueue() calls oxu210hp-hcd.c::qh_urb_transaction
> () at line 2845 and returns (-ENOMEM)
> 4) oxu210hp-hcd.c::qh_urb_transaction() returns NULL at line 1358 but does not 
> goto cleanup.
> 
> Can not debug at this point so progress is slow using printk :(
> 
> Any ideas why oxu210hp-hcd.c::qh_urb_transaction() returns NULL when oxu210hp-
> hcd.c::__oxu_urb_enqueue() is expecting it to return not zero to return 
> successfully itself?

Because one of the calls to ehci_qtd_alloc(), oxu_buf_alloc(), or
ehci_qtd_alloc() is failing to allocate memory.

Alan Stern

--
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