Problem - ohci1394.c:ohci_devctl ends up calling dma_pool_destroy from invalid context. Below is the dmesg output when I exit Kino after video capture - Debug: sleeping function called from invalid context at include/asm/semaphore.h:107 in_atomic():1, irqs_disabled():1 [] dump_stack+0x1e/0x20 [] __might_sleep+0xa2/0xc0 [] dma_pool_destroy+0x20/0x140 [] free_dma_rcv_ctx+0x8e/0x150 [ohci1394] [] ohci_devctl+0x214/0x9b0 [ohci1394] [] handle_iso_listen+0x2d9/0x310 [raw1394] [] state_connected+0x29b/0x2b0 [raw1394] [] raw1394_write+0x9e/0xd0 [raw1394] [] vfs_write+0xc2/0x170 [] sys_write+0x4b/0x80 [] sysenter_past_esp+0x52/0x75 Attached patch against 2.6.11-rc2 (tested to work normally with a camcorder device) enables ohci_devctl to defer the work of destroying the dma pool by using a work queue, so the dma pool is destroyed in a valid context and we no longer get an error in dmesg (duh :) Note : There still exists one more similar problem with ohci1394 - that is with dma_pool_create being called from invalid context - this happens in response to ISO_LISTEN_CHANNEL. I get dmesg debug for this case which is similar to the above. My analysis is that this one is non-trivial to fix. More on this in a separate mail. Patch is attached since T'Bird messes up with the inlined one. (Pls. suggest a good email client for kernel patch stuff :) Signed-off-by: Parag Warudkar (kernel-stuff@comcast.net) Parag