lkml.org 
[lkml]   [2007]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject2.6.20-rc4-git4, V4L - possible circular locking dependency detected

When I run tvtime (or any other v4l userland application) I got this.

Best regards.

---

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.20-rc4-git4 #1
-------------------------------------------------------
tvtime/1356 is trying to acquire lock:
(&mm->mmap_sem){----}, at: [<f1065234>] videobuf_dma_init_user+0xa4/0x140
[video_buf]

but task is already holding lock:
(&q->lock#2){--..}, at: [<f1066079>] videobuf_qbuf+0x29/0x2d0 [video_buf]

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&q->lock#2){--..}:
[<c0134016>] check_prev_add+0x166/0x230
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c0134166>] check_prevs_add+0x86/0x110
[<c0135a78>] __lock_acquire+0x3c8/0xaa0
[<c0145a44>] find_get_page+0x14/0x50
[<c0135d7c>] __lock_acquire+0x6cc/0xaa0
[<c015fb88>] poison_obj+0x28/0x50
[<c0161d65>] kfree+0x95/0xc0
[<c01367a4>] lock_acquire+0x74/0xa0
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c030f90f>] __mutex_lock_slowpath+0x6f/0x290
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c015fb88>] poison_obj+0x28/0x50
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c013500b>] trace_hardirqs_on+0xbb/0x160
[<f109c793>] bttv_mmap+0x23/0x90 [bttv]
[<c0161950>] kmem_cache_zalloc+0x90/0x100
[<c0154f47>] do_mmap_pgoff+0x387/0x790
[<c0154f47>] do_mmap_pgoff+0x387/0x790
[<c0154fe5>] do_mmap_pgoff+0x425/0x790
[<c0107ba3>] sys_mmap2+0x73/0xa0
[<c0103130>] syscall_call+0x7/0xb
[<ffffffff>] 0xffffffff

-> #0 (&mm->mmap_sem){----}:
[<c0134166>] check_prevs_add+0x86/0x110
[<c030f9e2>] __mutex_lock_slowpath+0x142/0x290
[<c0135d7c>] __lock_acquire+0x6cc/0xaa0
[<c01367a4>] lock_acquire+0x74/0xa0
[<f1065234>] videobuf_dma_init_user+0xa4/0x140 [video_buf]
[<c013145d>] down_read+0x3d/0x50
[<f1065234>] videobuf_dma_init_user+0xa4/0x140 [video_buf]
[<f1065234>] videobuf_dma_init_user+0xa4/0x140 [video_buf]
[<c030f9e2>] __mutex_lock_slowpath+0x142/0x290
[<c030f9e2>] __mutex_lock_slowpath+0x142/0x290
[<f1065903>] videobuf_iolock+0x73/0xc0 [video_buf]
[<c030f9ed>] __mutex_lock_slowpath+0x14d/0x290
[<f1099715>] bttv_prepare_buffer+0x165/0x1b0 [bttv]
[<f109980d>] buffer_prepare+0x3d/0x50 [bttv]
[<f10661ed>] videobuf_qbuf+0x19d/0x2d0 [video_buf]
[<f109a958>] bttv_try_fmt+0x138/0x160 [bttv]
[<f109bfcd>] bttv_do_ioctl+0x14dd/0x1600 [bttv]
[<c0203bb6>] __delay+0x6/0x10
[<c02b34df>] sclhi+0x4f/0x80
[<c0135a78>] __lock_acquire+0x3c8/0xaa0
[<c02b1b86>] i2c_transfer+0x36/0x70
[<c0203bb6>] __delay+0x6/0x10
[<c02b36f8>] i2c_outb+0xe8/0x1b0
[<c0203bb6>] __delay+0x6/0x10
[<c02b34df>] sclhi+0x4f/0x80
[<c02b3b83>] try_address+0x33/0xd0
[<c0203bb6>] __delay+0x6/0x10
[<c02b36f8>] i2c_outb+0xe8/0x1b0
[<c0310166>] __mutex_unlock_slowpath+0x96/0x160
[<c0134f0f>] mark_held_locks+0x6f/0x90
[<c0310166>] __mutex_unlock_slowpath+0x96/0x160
[<c0310166>] __mutex_unlock_slowpath+0x96/0x160
[<c013500b>] trace_hardirqs_on+0xbb/0x160
[<c02b1b9b>] i2c_transfer+0x4b/0x70
[<c02b1bfa>] i2c_master_send+0x3a/0x50
[<c0130004>] check_process_timers+0x1c4/0x560
[<f10cba2d>] default_set_tv_freq+0x38d/0xb40 [tuner]
[<c0135a78>] __lock_acquire+0x3c8/0xaa0
[<c012bddc>] __kernel_text_address+0x1c/0x30
[<c0103d4a>] dump_trace+0x5a/0xa0
[<c010985c>] save_stack_trace+0x1c/0x30
[<c0133040>] save_trace+0x40/0xa0
[<c01335ca>] add_lock_to_list+0x2a/0x60
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c0134055>] check_prev_add+0x1a5/0x230
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c0135a78>] __lock_acquire+0x3c8/0xaa0
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c015fb88>] poison_obj+0x28/0x50
[<f103c33f>] video_usercopy+0xdf/0x200 [videodev]
[<c03111a4>] _spin_unlock+0x14/0x20
[<c01543ee>] vma_link+0xae/0xf0
[<c01550ca>] do_mmap_pgoff+0x50a/0x790
[<f109c0f0>] bttv_ioctl+0x0/0x70 [bttv]
[<f109c121>] bttv_ioctl+0x31/0x70 [bttv]
[<f109aaf0>] bttv_do_ioctl+0x0/0x1600 [bttv]
[<c0170180>] do_ioctl+0x50/0x80
[<c01702de>] vfs_ioctl+0x5e/0x1c0
[<c017047d>] sys_ioctl+0x3d/0x70
[<c0103130>] syscall_call+0x7/0xb
[<ffffffff>] 0xffffffff

other info that might help us debug this:

1 lock held by tvtime/1356:
#0: (&q->lock#2){--..}, at: [<f1066079>] videobuf_qbuf+0x29/0x2d0
[video_buf]

stack backtrace:
[<c01337fa>] print_circular_bug_tail+0x7a/0x80
[<c0134166>] check_prevs_add+0x86/0x110
[<c030f9e2>] __mutex_lock_slowpath+0x142/0x290
[<c0135d7c>] __lock_acquire+0x6cc/0xaa0
[<c01367a4>] lock_acquire+0x74/0xa0
[<f1065234>] videobuf_dma_init_user+0xa4/0x140 [video_buf]
[<c013145d>] down_read+0x3d/0x50
[<f1065234>] videobuf_dma_init_user+0xa4/0x140 [video_buf]
[<f1065234>] videobuf_dma_init_user+0xa4/0x140 [video_buf]
[<c030f9e2>] __mutex_lock_slowpath+0x142/0x290
[<c030f9e2>] __mutex_lock_slowpath+0x142/0x290
[<f1065903>] videobuf_iolock+0x73/0xc0 [video_buf]
[<c030f9ed>] __mutex_lock_slowpath+0x14d/0x290
[<f1099715>] bttv_prepare_buffer+0x165/0x1b0 [bttv]
[<f109980d>] buffer_prepare+0x3d/0x50 [bttv]
[<f10661ed>] videobuf_qbuf+0x19d/0x2d0 [video_buf]
[<f109a958>] bttv_try_fmt+0x138/0x160 [bttv]
[<f109bfcd>] bttv_do_ioctl+0x14dd/0x1600 [bttv]
[<c0203bb6>] __delay+0x6/0x10
[<c02b34df>] sclhi+0x4f/0x80
[<c0135a78>] __lock_acquire+0x3c8/0xaa0
[<c02b1b86>] i2c_transfer+0x36/0x70
[<c0203bb6>] __delay+0x6/0x10
[<c02b36f8>] i2c_outb+0xe8/0x1b0
[<c0203bb6>] __delay+0x6/0x10
[<c02b34df>] sclhi+0x4f/0x80
[<c02b3b83>] try_address+0x33/0xd0
[<c0203bb6>] __delay+0x6/0x10
[<c02b36f8>] i2c_outb+0xe8/0x1b0
[<c0310166>] __mutex_unlock_slowpath+0x96/0x160
[<c0134f0f>] mark_held_locks+0x6f/0x90
[<c0310166>] __mutex_unlock_slowpath+0x96/0x160
[<c0310166>] __mutex_unlock_slowpath+0x96/0x160
[<c013500b>] trace_hardirqs_on+0xbb/0x160
[<c02b1b9b>] i2c_transfer+0x4b/0x70
[<c02b1bfa>] i2c_master_send+0x3a/0x50
[<c0130004>] check_process_timers+0x1c4/0x560
[<f10cba2d>] default_set_tv_freq+0x38d/0xb40 [tuner]
[<c0135a78>] __lock_acquire+0x3c8/0xaa0
[<c012bddc>] __kernel_text_address+0x1c/0x30
[<c0103d4a>] dump_trace+0x5a/0xa0
[<c010985c>] save_stack_trace+0x1c/0x30
[<c0133040>] save_trace+0x40/0xa0
[<c01335ca>] add_lock_to_list+0x2a/0x60
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c0134055>] check_prev_add+0x1a5/0x230
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c0135a78>] __lock_acquire+0x3c8/0xaa0
[<f1067180>] videobuf_mmap_mapper+0x10/0x24e [video_buf]
[<c015fb88>] poison_obj+0x28/0x50
[<f103c33f>] video_usercopy+0xdf/0x200 [videodev]
[<c03111a4>] _spin_unlock+0x14/0x20
[<c01543ee>] vma_link+0xae/0xf0
[<c01550ca>] do_mmap_pgoff+0x50a/0x790
[<f109c0f0>] bttv_ioctl+0x0/0x70 [bttv]
[<f109c121>] bttv_ioctl+0x31/0x70 [bttv]
[<f109aaf0>] bttv_do_ioctl+0x0/0x1600 [bttv]
[<c0170180>] do_ioctl+0x50/0x80
[<c01702de>] vfs_ioctl+0x5e/0x1c0
[<c017047d>] sys_ioctl+0x3d/0x70
[<c0103130>] syscall_call+0x7/0xb
=======================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-01-11 09:33    [W:0.032 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site