Bug 2656 - Dead lock in stop_dma_rcv_ctx
Summary: Dead lock in stop_dma_rcv_ctx
Status: CLOSED PATCH_ALREADY_AVAILABLE
Alias: None
Product: Drivers
Classification: Unclassified
Component: IEEE1394 (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Ben Collins
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-05-07 23:01 UTC by Herbert Xu
Modified: 2006-02-02 16:01 UTC (History)
3 users (show)

See Also:
Kernel Version: 2.6.5
Subsystem:
Regression: ---
Bisected commit-id:


Attachments

Description Herbert Xu 2004-05-07 23:01:59 UTC
This bug was reported in http://bugs.debian.org/234365

The problem is that tasklet_kill is being called with IRQs disabled.  The IRQs
are disabled in  handle_iso_listen.  As the interrupts are off, the tasklet will
never fire.  Hence the tasklet_kill call never returns.

The call chain looks like:

 [<f8a9cea6>] ohci1394_unregister_iso_tasklet+0x16/0xa3 [ohci1394]
 [<f8a9bb76>] stop_dma_rcv_ctx+0x76/0x80 [ohci1394]
 [<f8a993d9>] ohci_devctl+0x579/0x640 [ohci1394]
 [<f8ab12dc>] hpsb_unlisten_channel+0x3c/0x60 [ieee1394]
 [<f8aa2e43>] handle_iso_listen+0x163/0x1a0 [raw1394]
 [<f8aa5eb6>] state_connected+0x126/0x2c0 [raw1394]
 [<f8aa6103>] raw1394_write+0xb3/0x120 [raw1394]
 [<c016026d>] vfs_write+0xed/0x160
 [<c0160392>] sys_write+0x42/0x70
 [<c010959b>] syscall_call+0x7/0xb
Comment 1 Stefan Richter 2005-10-29 05:17:47 UTC
There was a patch included in Linux 2.6.14 which could affect the problem.
http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4a9949d7ac9e2bc51939f27b184be6e1bd99004e
Laurent, could you test it?
Comment 2 Adrian Bunk 2006-02-02 16:01:41 UTC
I'm assuming this issue is already fixed.

Please reopen this bug if it's still present in kernel 2.6.16-rc1.

Note You need to log in before you can comment on or make changes to this bug.