Hello -- this is a re-post of an earlier problem from last week I'm still
working on.

I'm using an ARM-based 2.4.18-rmk4 system that is using a USB Bluetooth
device to do file transfer. When I transfer a large file, the system hits a
"not in interrupt" assertion in consistent_alloc (arch/arm/mm/consistent.c).
I've included the stack trace below, and it looks like something in either
the USB or PCI subsystem is trying to allocate some memory when it shouldn't
be. There is a comment in consistent_alloc() to this effect... how far up
the stack should this assertion apply?

The reason it only happens for large files is that the pci_pool system
maintains some buffers to use, which are sufficient for small files. (As a
workaround, I made the pci code allocate enough buffers when it initializes,
so this problem is not triggered.) 

I don't know enough about the USB or PCI or SA1111 subsystems to really
know/understand what the real problem is here... Max (Bluetooth subsystem)
says that the BlueZ stack doesn't deal with the PCI layers, so it probably
isn't a problem there (it is valid to call usb_start_wait_urb from an
interrupt context)?

        Trevor


> Trace; c021af48 <consistent_alloc+0/150>
> Trace; c021b0ac <pci_alloc_consistent+14/1c>
> Trace; c021b098 <pci_alloc_consistent+0/1c>
> Trace; c021e9e0 <pci_pool_alloc+0/1b0>
> Trace; c021e990 <pci_pool_destroy+80/d0>
> Trace; c021ec6c <pci_pool_free+80/f0>
> Trace; c021eb8c <pci_pool_alloc+1ac/1b0>
> Trace; c021e5f8 <sa1111_map_single+74/a8>
> Trace; c021e5b4 <sa1111_map_single+30/a8>
> Trace; c021e784 <pci_pool_create+a0/100>
> Trace; c021e730 <pci_pool_create+4c/100>
> Trace; c02c5e68 <td_submit_urb+1bc/3a8>
> Trace; c02c5d88 <td_submit_urb+dc/3a8>
> Trace; c02c49a0 <sohci_unlink_urb+d0/244>
> Trace; c02c44b0 <sohci_submit_urb+dc/4fc>
> Trace; c02bb580 <usb_start_wait_urb+60/174>
> Trace; c02bb540 <usb_start_wait_urb+20/174>
> Trace; c2879820 <END_OF_CODE+2502ff8/????>
> Trace; c02271f4 <tasklet_init+1c/28>
> Trace; c0227004 <__tasklet_hi_schedule+38/7c>
> Trace; c0226f84 <__tasklet_schedule+34/7c>
> Trace; c0215688 <__do_softirq+8/20>
> Trace; c02c9250 <sock_recvmsg+28/e4>
> Trace; c02c9530 <sock_readv_writev+58/80>
> Trace; c02c9490 <sock_sendpage+38/80>
> Trace; c0242ddc <do_readv_writev+64/2ec>
> Trace; c0242d00 <sys_write+dc/154>
> Trace; c02156a0 <ret_fast_syscall+0/38>



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Stuff, things, and much much more.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to