I'm having problem with several embeded machines using USB2.0
Whenever I try to "stream" bulk URBs (that is, resubmit the URB immedaitely
from inside the irq handler), the kernel oopses somewhere in keventd.
I'm trying to record from my USB2.0 DVB-T receiver on an embeded device.
The receiver is TerraTec Cinergy T2 and is well supported under Linux.
The drivers work well on the desktop.
The device uses one bulk endpoint for contron and another bulk en/dvb)/dpoint
for transfer of high speed data stream (~2MB/s, mpeg transport stream)
The "problem" was that the buffer passed in URBs was allocated using
pci_alloc_consistent(). When I changed this to kmalloced buffer, it started
working reliably. I'll notify DVB developers about this.
I still don't know why does it *really* oops as the return value of pci_alloc_consistent
was checked and even clearing memset worked OK on it.
I've found that no other USB driver is allocating buffers this way, only DVB drivers
(media/dvb) use it. It may be just a coincidence but when I was trying another
USB DVB device in embeded enviroment, it wasn't working as well*.
*) The another one (Hauppage/WinTV Nova) uses isoc transfers and the driver
doesn't cause oops, it just streams buffers filled with zeros in the embeded enviroment.
This is USB1.1 device, tested on ohci, though.
Nenik
------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
