Bug 3825 - unable to grab dv film through 1394 dv driver
Summary: unable to grab dv film through 1394 dv driver
Status: CLOSED CODE_FIX
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-11-27 14:12 UTC by Christian Casteyde
Modified: 2004-12-28 11:44 UTC (History)
0 users

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


Attachments

Description Christian Casteyde 2004-11-27 14:12:46 UTC
Distribution: 
  Slackware 10 
Hardware Environment: 
  Athlon 2000 base computer, 512Mo, IDE disk, Pinnacle Studio DV card 
Software Environment: 
  glibc 2.3.2, gcc 3.3.4, libdv 0.103, libraw1394 0.10.1, libavc1394 0.4.1 and 
libdc1394 1.0.0, dvgrab 1.6 
  vanilla kernel 2.6.9 build with preempt option, 4K stack, ext3 filesystem, 
and some debug options. 
 
Problem Description: 
  Trying to capture DV video frames from a camcorder connected to the 1394 port 
of the computer. Using dvgrab to do that. dvgrab puts the camcorder in the play 
mode, wait for 1/2 second, and stop it and exits. 
Then it seems it was interrupted in kernel badly by a big sleep inside lock 
warning. Here is an excerpt of dmesg output (please note I unplugged and 
plugged several times the camcorder before noticing udev does not 
create /dev/raw1394 anymore, hence the "repeated" line I think): 
 
Nov 27 15:27:55 neptune kernel: ohci1394: fw-host0: SelfID received, but NodeID 
invalid (probably new bus reset occurred): 0800FFC0 
Nov 27 15:27:55 neptune last message repeated 19 times 
Nov 27 15:28:16 neptune kernel: Debug: sleeping function called from invalid 
context at mm/slab.c:2052 
Nov 27 15:28:16 neptune kernel: in_atomic():1, irqs_disabled():1 
Nov 27 15:28:16 neptune kernel:  [<c010524e>] dump_stack+0x1e/0x20 
Nov 27 15:28:16 neptune kernel:  [<c011a1c0>] __might_sleep+0xb0/0xe0 
Nov 27 15:28:16 neptune kernel:  [<c013fa1f>] __kmalloc+0x8f/0xa0 
Nov 27 15:28:16 neptune kernel:  [<c02abe59>] alloc_dma_rcv_ctx+0x59/0x3d0 
Nov 27 15:28:16 neptune kernel:  [<c02a9485>] ohci_devctl+0x3e5/0x630 
Nov 27 15:28:16 neptune kernel:  [<c029f663>] hpsb_listen_channel+0x43/0x70 
Nov 27 15:28:16 neptune kernel:  [<c02b01b3>] handle_iso_listen+0xb3/0x150 
Nov 27 15:28:16 neptune kernel:  [<c02b30bd>] state_connected+0xfd/0x250 
Nov 27 15:28:16 neptune kernel:  [<c02b3291>] raw1394_write+0x81/0xd0 
Nov 27 15:28:16 neptune kernel:  [<c01540c0>] vfs_write+0xa0/0x120 
Nov 27 15:28:16 neptune kernel:  [<c015420b>] sys_write+0x4b/0x80 
Nov 27 15:28:16 neptune kernel:  [<c01043af>] syscall_call+0x7/0xb 
Nov 27 15:28:28 neptune kernel: Debug: sleeping function called from invalid 
context at include/asm/semaphore.h:107 
Nov 27 15:28:28 neptune kernel: in_atomic():1, irqs_disabled():1 
Nov 27 15:28:28 neptune kernel:  [<c010524e>] dump_stack+0x1e/0x20 
Nov 27 15:28:28 neptune kernel:  [<c011a1c0>] __might_sleep+0xb0/0xe0 
Nov 27 15:28:28 neptune kernel:  [<c0252db5>] dma_pool_destroy+0x25/0x150 
Nov 27 15:28:28 neptune kernel:  [<c02abda3>] free_dma_rcv_ctx+0xd3/0x130 
Nov 27 15:28:28 neptune kernel:  [<c02a9622>] ohci_devctl+0x582/0x630 
Nov 27 15:28:28 neptune kernel:  [<c029f6c9>] hpsb_unlisten_channel+0x39/0x50 
Nov 27 15:28:28 neptune kernel:  [<c02b022b>] handle_iso_listen+0x12b/0x150 
Nov 27 15:28:28 neptune kernel:  [<c02b30bd>] state_connected+0xfd/0x250 
Nov 27 15:28:28 neptune kernel:  [<c02b3291>] raw1394_write+0x81/0xd0 
Nov 27 15:28:28 neptune kernel:  [<c01540c0>] vfs_write+0xa0/0x120 
Nov 27 15:28:28 neptune kernel:  [<c015420b>] sys_write+0x4b/0x80 
Nov 27 15:28:28 neptune kernel:  [<c01043af>] syscall_call+0x7/0xb 
Nov 27 15:28:45 neptune kernel: Debug: sleeping function called from invalid 
context at mm/slab.c:2052 
... after several tries. 
 
Seems fairly reproducable. 
Hardware used to work with 2.4.x and older 2.6.x kernels (do not remember which 
however, perhaps 2.6.5 - 2.6.7). 
 
Steps to reproduce: 
  Just try to grab with dvgrab on a 2.6.9 kernel.
Comment 1 Christian Casteyde 2004-12-28 11:44:19 UTC
Seems to be fixed in 2.6.10. 
dvgrab now works after kernel upgrade. At least, I cannot reproduce anymore the 
problem with 2.6.10 if it is not fixed. 

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