lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 27 Dec 2012 16:36:22 +0800
From:	Shawn Guo <shawn.guo@...aro.org>
To:	Maciej Rutecki <maciej.rutecki@...il.com>
CC:	LKML <linux-kernel@...r.kernel.org>,
	Cong Wang <xiyou.wangcong@...il.com>,
	<linux-arm-kernel@...ts.infradead.org>,
	Daniel Vetter <daniel.vetter@...ll.ch>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: Re: [REGRESSION][3.8.-rc1][ INFO: possible circular locking
 dependency detected ]

On Wed, Dec 26, 2012 at 10:34:39AM +0800, Shawn Guo wrote:
> It seems that I'm running into the same locking issue.  My setup is:
> 
> - i.MX28 (ARM)
> - v3.8-rc1
> - mxs_defconfig
  - The warning is seen when LCD is blanking
> 

The warning disappears after reverting patch daee779 (console: implement
lockdep support for console_lock).  Is it suggesting that the mxs
frame buffer driver (drivers/video/mxsfb.c) is doing something bad?

Shawn

> 
> [  602.229899] ======================================================
> [  602.229905] [ INFO: possible circular locking dependency detected ]
> [  602.229926] 3.8.0-rc1-00003-gde4ae7f #767 Not tainted
> [  602.229933] -------------------------------------------------------
> [  602.229951] kworker/0:1/21 is trying to acquire lock:
> [  602.230037]  ((fb_notifier_list).rwsem){.+.+.+}, at: [<c0041f34>] __blocking_notifier_call_chain+0x2c/0x60
> [  602.230047]
> [  602.230047] but task is already holding lock:
> [  602.230090]  (console_lock){+.+.+.}, at: [<c02a1d60>] console_callback+0xc/0x12c
> [  602.230098]
> [  602.230098] which lock already depends on the new lock.
> [  602.230098]
> [  602.230104]
> [  602.230104] the existing dependency chain (in reverse order) is:
> [  602.230126]
> [  602.230126] -> #1 (console_lock){+.+.+.}:
> [  602.230174]        [<c005cb20>] lock_acquire+0x9c/0x124
> [  602.230205]        [<c001dc78>] console_lock+0x58/0x6c
> [  602.230250]        [<c029ea60>] register_con_driver+0x38/0x138
> [  602.230284]        [<c02a0018>] take_over_console+0x18/0x44
> [  602.230314]        [<c027bc80>] fbcon_takeover+0x64/0xc8
> [  602.230352]        [<c0041c94>] notifier_call_chain+0x44/0x80
> [  602.230386]        [<c0041f50>] __blocking_notifier_call_chain+0x48/0x60
> [  602.230416]        [<c0041f80>] blocking_notifier_call_chain+0x18/0x20
> [  602.230459]        [<c0275efc>] register_framebuffer+0x170/0x250
> [  602.230492]        [<c02837f4>] mxsfb_probe+0x574/0x738
> [  602.230528]        [<c02b276c>] platform_drv_probe+0x14/0x18
> [  602.230556]        [<c02b14cc>] driver_probe_device+0x78/0x20c
> [  602.230583]        [<c02b16f4>] __driver_attach+0x94/0x98
> [  602.230610]        [<c02afdb4>] bus_for_each_dev+0x54/0x7c
> [  602.230636]        [<c02b0d14>] bus_add_driver+0x180/0x250
> [  602.230662]        [<c02b1bb8>] driver_register+0x78/0x144
> [  602.230690]        [<c00087c8>] do_one_initcall+0x30/0x16c
> [  602.230721]        [<c0428fcc>] kernel_init+0xf4/0x290
> [  602.230756]        [<c000e9c8>] ret_from_fork+0x14/0x2c
> [  602.230781]
> [  602.230781] -> #0 ((fb_notifier_list).rwsem){.+.+.+}:
> [  602.230825]        [<c005bfa0>] __lock_acquire+0x1354/0x19b0
> [  602.230854]        [<c005cb20>] lock_acquire+0x9c/0x124
> [  602.230895]        [<c0430148>] down_read+0x3c/0x4c
> [  602.230933]        [<c0041f34>] __blocking_notifier_call_chain+0x2c/0x60
> [  602.230962]        [<c0041f80>] blocking_notifier_call_chain+0x18/0x20
> [  602.230997]        [<c0274a78>] fb_blank+0x34/0x98
> [  602.231024]        [<c027c7b8>] fbcon_blank+0x1dc/0x27c
> [  602.231065]        [<c029f194>] do_blank_screen+0x1b0/0x268
> [  602.231093]        [<c02a1dbc>] console_callback+0x68/0x12c
> [  602.231121]        [<c00368c0>] process_one_work+0x1a8/0x560
> [  602.231145]        [<c0036fd8>] worker_thread+0x160/0x480
> [  602.231180]        [<c003c040>] kthread+0xa4/0xb0
> [  602.231210]        [<c000e9c8>] ret_from_fork+0x14/0x2c
> [  602.231218]
> [  602.231218] other info that might help us debug this:
> [  602.231218]
> [  602.231225]  Possible unsafe locking scenario:
> [  602.231225]
> [  602.231230]        CPU0                    CPU1
> [  602.231235]        ----                    ----
> [  602.231249]   lock(console_lock);
> [  602.231263]                                lock((fb_notifier_list).rwsem);
> [  602.231275]                                lock(console_lock);
> [  602.231287]   lock((fb_notifier_list).rwsem);
> [  602.231292]
> [  602.231292]  *** DEADLOCK ***
> [  602.231292]
> [  602.231305] 3 locks held by kworker/0:1/21:
> [  602.231345]  #0:  (events){.+.+.+}, at: [<c0036840>] process_one_work+0x128/0x560
> [  602.231388]  #1:  (console_work){+.+...}, at: [<c0036840>] process_one_work+0x128/0x560
> [  602.231430]  #2:  (console_lock){+.+.+.}, at: [<c02a1d60>] console_callback+0xc/0x12c
> [  602.231437]
> [  602.231437] stack backtrace:
> [  602.231491] [<c0013e58>] (unwind_backtrace+0x0/0xf0) from [<c042b0e4>] (print_circular_bug+0x254/0x2a0)
> [  602.231547] [<c042b0e4>] (print_circular_bug+0x254/0x2a0) from [<c005bfa0>] (__lock_acquire+0x1354/0x19b0)
> [  602.231596] [<c005bfa0>] (__lock_acquire+0x1354/0x19b0) from [<c005cb20>] (lock_acquire+0x9c/0x124)
> [  602.231640] [<c005cb20>] (lock_acquire+0x9c/0x124) from [<c0430148>] (down_read+0x3c/0x4c)
> [  602.231694] [<c0430148>] (down_read+0x3c/0x4c) from [<c0041f34>] (__blocking_notifier_call_chain+0x2c/0x60)
> [  602.231741] [<c0041f34>] (__blocking_notifier_call_chain+0x2c/0x60) from [<c0041f80>] (blocking_notifier_call_chain+0x18/0x20)
> [  602.231791] [<c0041f80>] (blocking_notifier_call_chain+0x18/0x20) from [<c0274a78>] (fb_blank+0x34/0x98)
> [  602.231836] [<c0274a78>] (fb_blank+0x34/0x98) from [<c027c7b8>] (fbcon_blank+0x1dc/0x27c)
> [  602.231886] [<c027c7b8>] (fbcon_blank+0x1dc/0x27c) from [<c029f194>] (do_blank_screen+0x1b0/0x268)
> [  602.231931] [<c029f194>] (do_blank_screen+0x1b0/0x268) from [<c02a1dbc>] (console_callback+0x68/0x12c)
> [  602.231970] [<c02a1dbc>] (console_callback+0x68/0x12c) from [<c00368c0>] (process_one_work+0x1a8/0x560)
> [  602.232010] [<c00368c0>] (process_one_work+0x1a8/0x560) from [<c0036fd8>] (worker_thread+0x160/0x480)
> [  602.232054] [<c0036fd8>] (worker_thread+0x160/0x480) from [<c003c040>] (kthread+0xa4/0xb0)
> [  602.232100] [<c003c040>] (kthread+0xa4/0xb0) from [<c000e9c8>] (ret_from_fork+0x14/0x2c)
> 
> 
> On Sat, Dec 22, 2012 at 04:28:26PM +0100, Maciej Rutecki wrote:
> > Got during suspend to disk:
> > 
> > [  269.784867] [ INFO: possible circular locking dependency detected ]
> > [  269.784869] 3.8.0-rc1 #1 Not tainted
> > [  269.784870] -------------------------------------------------------
> > [  269.784871] kworker/u:3/56 is trying to acquire lock:
> > [  269.784878]  ((fb_notifier_list).rwsem){.+.+.+}, at: [<ffffffff81062a1d>] 
> > __blocking_notifier_call_chain+0x49/0x80
> > [  269.784879] 
> > [  269.784879] but task is already holding lock:
> > [  269.784884]  (console_lock){+.+.+.}, at: [<ffffffff812ee4ce>] 
> > i915_drm_freeze+0x9e/0xbb
> > [  269.784884] 
> > [  269.784884] which lock already depends on the new lock.
> > [  269.784884] 
> > [  269.784885] 
> > [  269.784885] the existing dependency chain (in reverse order) is:
> > [  269.784887] 
> > [  269.784887] -> #1 (console_lock){+.+.+.}:
> > [  269.784890]        [<ffffffff810890e4>] lock_acquire+0x95/0x105
> > [  269.784893]        [<ffffffff810405a1>] console_lock+0x59/0x5b
> > [  269.784897]        [<ffffffff812ba125>] register_con_driver+0x36/0x128
> > [  269.784899]        [<ffffffff812bb27e>] take_over_console+0x1e/0x45
> > [  269.784903]        [<ffffffff81257a04>] fbcon_takeover+0x56/0x98
> > [  269.784906]        [<ffffffff8125b857>] fbcon_event_notify+0x2c1/0x5ea
> > [  269.784909]        [<ffffffff8149a211>] notifier_call_chain+0x67/0x92
> > [  269.784911]        [<ffffffff81062a33>] __blocking_notifier_call_chain+0x5f/0x80
> > [  269.784912]        [<ffffffff81062a63>] blocking_notifier_call_chain+0xf/0x11
> > [  269.784915]        [<ffffffff8124e85e>] fb_notifier_call_chain+0x16/0x18
> > [  269.784917]        [<ffffffff812505d7>] register_framebuffer+0x20a/0x26e
> > [  269.784920]        [<ffffffff812d3ca0>] 
> > drm_fb_helper_single_fb_probe+0x1ce/0x297
> > [  269.784922]        [<ffffffff812d3f40>] drm_fb_helper_initial_config+0x1d7/0x1ef
> > [  269.784924]        [<ffffffff8132cee2>] intel_fbdev_init+0x6f/0x82
> > [  269.784927]        [<ffffffff812f22f6>] i915_driver_load+0xa9e/0xc78
> > [  269.784929]        [<ffffffff812e020c>] drm_get_pci_dev+0x165/0x26d
> > [  269.784931]        [<ffffffff812ee8da>] i915_pci_probe+0x60/0x69
> > [  269.784933]        [<ffffffff8123fe8e>] local_pci_probe+0x39/0x61
> > [  269.784935]        [<ffffffff812400f5>] pci_device_probe+0xba/0xe0
> > [  269.784938]        [<ffffffff8133d3b6>] driver_probe_device+0x99/0x1c4
> > [  269.784940]        [<ffffffff8133d52f>] __driver_attach+0x4e/0x6f
> > [  269.784942]        [<ffffffff8133bae1>] bus_for_each_dev+0x52/0x84
> > [  269.784944]        [<ffffffff8133cec6>] driver_attach+0x19/0x1b
> > [  269.784946]        [<ffffffff8133cb65>] bus_add_driver+0xdf/0x203
> > [  269.784948]        [<ffffffff8133dad3>] driver_register+0x8e/0x114
> > [  269.784952]        [<ffffffff8123f581>] __pci_register_driver+0x5d/0x62
> > [  269.784953]        [<ffffffff812e0395>] drm_pci_init+0x81/0xe6
> > [  269.784957]        [<ffffffff81af7612>] i915_init+0x66/0x68
> > [  269.784959]        [<ffffffff810020b4>] do_one_initcall+0x7a/0x136
> > [  269.784962]        [<ffffffff8147ceaa>] kernel_init+0x141/0x296
> > [  269.784964]        [<ffffffff8149c7bc>] ret_from_fork+0x7c/0xb0
> > [  269.784966] 
> > [  269.784966] -> #0 ((fb_notifier_list).rwsem){.+.+.+}:
> > [  269.784967]        [<ffffffff81088955>] __lock_acquire+0xa7e/0xddd
> > [  269.784969]        [<ffffffff810890e4>] lock_acquire+0x95/0x105
> > [  269.784971]        [<ffffffff81495092>] down_read+0x34/0x43
> > [  269.784973]        [<ffffffff81062a1d>] __blocking_notifier_call_chain+0x49/0x80
> > [  269.784975]        [<ffffffff81062a63>] blocking_notifier_call_chain+0xf/0x11
> > [  269.784977]        [<ffffffff8124e85e>] fb_notifier_call_chain+0x16/0x18
> > [  269.784979]        [<ffffffff8124ec47>] fb_set_suspend+0x22/0x4d
> > [  269.784981]        [<ffffffff8132cfe3>] intel_fbdev_set_suspend+0x20/0x22
> > [  269.784983]        [<ffffffff812ee4db>] i915_drm_freeze+0xab/0xbb
> > [  269.784985]        [<ffffffff812eea82>] i915_pm_freeze+0x3d/0x41
> > [  269.784987]        [<ffffffff8123f759>] pci_pm_freeze+0x65/0x8d
> > [  269.784990]        [<ffffffff81342f20>] dpm_run_callback.isra.3+0x27/0x56
> > [  269.784993]        [<ffffffff81343085>] __device_suspend+0x136/0x1b1
> > [  269.784995]        [<ffffffff8134311a>] async_suspend+0x1a/0x58
> > [  269.784997]        [<ffffffff81063a6b>] async_run_entry_fn+0xa4/0x17c
> > [  269.785000]        [<ffffffff81058df2>] process_one_work+0x1cf/0x38e
> > [  269.785002]        [<ffffffff81059290>] worker_thread+0x12e/0x1cc
> > [  269.785004]        [<ffffffff8105d416>] kthread+0xac/0xb4
> > [  269.785006]        [<ffffffff8149c7bc>] ret_from_fork+0x7c/0xb0
> > [  269.785006] 
> > [  269.785006] other info that might help us debug this:
> > [  269.785006] 
> > [  269.785007]  Possible unsafe locking scenario:
> > [  269.785007] 
> > [  269.785008]        CPU0                    CPU1
> > [  269.785008]        ----                    ----
> > [  269.785009]   lock(console_lock);
> > [  269.785010]                                lock((fb_notifier_list).rwsem);
> > [  269.785012]                                lock(console_lock);
> > [  269.785013]   lock((fb_notifier_list).rwsem);
> > [  269.785013] 
> > [  269.785013]  *** DEADLOCK ***
> > [  269.785013] 
> > [  269.785014] 4 locks held by kworker/u:3/56:
> > [  269.785018]  #0:  (events_unbound){.+.+.+}, at: [<ffffffff81058d77>] 
> > process_one_work+0x154/0x38e
> > [  269.785021]  #1:  ((&entry->work)){+.+.+.}, at: [<ffffffff81058d77>] 
> > process_one_work+0x154/0x38e
> > [  269.785024]  #2:  (&__lockdep_no_validate__){......}, at: [<ffffffff81342d85>] 
> > device_lock+0xf/0x11
> > [  269.785027]  #3:  (console_lock){+.+.+.}, at: [<ffffffff812ee4ce>] 
> > i915_drm_freeze+0x9e/0xbb
> > [  269.785028] 
> > [  269.785028] stack backtrace:
> > [  269.785029] Pid: 56, comm: kworker/u:3 Not tainted 3.8.0-rc1 #1
> > [  269.785030] Call Trace:
> > [  269.785035]  [<ffffffff8148fcb5>] print_circular_bug+0x1f8/0x209
> > [  269.785036]  [<ffffffff81088955>] __lock_acquire+0xa7e/0xddd
> > [  269.785038]  [<ffffffff810890e4>] lock_acquire+0x95/0x105
> > [  269.785040]  [<ffffffff81062a1d>] ? __blocking_notifier_call_chain+0x49/0x80
> > [  269.785042]  [<ffffffff81495092>] down_read+0x34/0x43
> > [  269.785044]  [<ffffffff81062a1d>] ? __blocking_notifier_call_chain+0x49/0x80
> > [  269.785046]  [<ffffffff81062a1d>] __blocking_notifier_call_chain+0x49/0x80
> > [  269.785047]  [<ffffffff81062a63>] blocking_notifier_call_chain+0xf/0x11
> > [  269.785050]  [<ffffffff8124e85e>] fb_notifier_call_chain+0x16/0x18
> > [  269.785052]  [<ffffffff8124ec47>] fb_set_suspend+0x22/0x4d
> > [  269.785054]  [<ffffffff8132cfe3>] intel_fbdev_set_suspend+0x20/0x22
> > [  269.785055]  [<ffffffff812ee4db>] i915_drm_freeze+0xab/0xbb
> > [  269.785057]  [<ffffffff812eea82>] i915_pm_freeze+0x3d/0x41
> > [  269.785060]  [<ffffffff8123f759>] pci_pm_freeze+0x65/0x8d
> > [  269.785062]  [<ffffffff8123f6f4>] ? pci_pm_poweroff+0x9c/0x9c
> > [  269.785064]  [<ffffffff81342f20>] dpm_run_callback.isra.3+0x27/0x56
> > [  269.785066]  [<ffffffff81343085>] __device_suspend+0x136/0x1b1
> > [  269.785068]  [<ffffffff81089563>] ? trace_hardirqs_on_caller+0x117/0x173
> > [  269.785070]  [<ffffffff8134311a>] async_suspend+0x1a/0x58
> > [  269.785072]  [<ffffffff81063a6b>] async_run_entry_fn+0xa4/0x17c
> > [  269.785074]  [<ffffffff81058df2>] process_one_work+0x1cf/0x38e
> > [  269.785076]  [<ffffffff81058d77>] ? process_one_work+0x154/0x38e
> > [  269.785078]  [<ffffffff810639c7>] ? async_schedule+0x12/0x12
> > [  269.785080]  [<ffffffff8105679f>] ? spin_lock_irq+0x9/0xb
> > [  269.785082]  [<ffffffff81059290>] worker_thread+0x12e/0x1cc
> > [  269.785084]  [<ffffffff81059162>] ? rescuer_thread+0x187/0x187
> > [  269.785085]  [<ffffffff8105d416>] kthread+0xac/0xb4
> > [  269.785088]  [<ffffffff8105d36a>] ? __kthread_parkme+0x60/0x60
> > [  269.785090]  [<ffffffff8149c7bc>] ret_from_fork+0x7c/0xb0
> > [  269.785091]  [<ffffffff8105d36a>] ? __kthread_parkme+0x60/0x60
> > 
> > 
> > Config:
> > http://mrutecki.pl/download/kernel/3.8.0-rc1/s2disk/config-3.8.0-rc1
> > 
> > dmesg:
> > http://mrutecki.pl/download/kernel/3.8.0-rc1/s2disk/dmesg-3.8.0-rc1.txt
> > 
> > 
> > Found similar report:
> > http://marc.info/?l=linux-kernel&m=135546308908700&w=2
> > 
> > Regards
> > 
> > -- 
> > Maciej Rutecki
> > http://www.mrutecki.pl
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo@...r.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at  http://www.tux.org/lkml/
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ