From: Ron Mercer <ron.mercer@qlogic.com>
To: Jarek Poplawski <jarkao2@gmail.com>
Cc: Yinghai Lu <yinghai@kernel.org>,
David Miller <davem@davemloft.net>,
NetDev <netdev@vger.kernel.org>, Ingo Molnar <mingo@elte.hu>,
Linux Driver <Linux-Driver@qlogic.com>
Subject: Re: qlge warning
Date: Sun, 5 Dec 2010 14:27:18 -0800 [thread overview]
Message-ID: <20101205222718.GA2609@linux-ox1b.qlogic.org> (raw)
In-Reply-To: <4CF95995.1070506@gmail.com>
OK, I see the point. We are working on it.
Thanks
On Fri, Dec 03, 2010 at 12:56:53PM -0800, Jarek Poplawski wrote:
> It looks like cancel_delayed_work_sync in ql_adapter_down is illegal.
> We can't sync works with rtnl_lock while holding it in qlge_close.
>
> Maintainers CC'ed.
>
> Jarek P.
>
> Yinghai Lu wrote:
> > [ 290.233264] =======================================================
> > [ 290.251780] [ INFO: possible circular locking dependency detected ]
> > [ 290.271534] 2.6.37-rc4-tip-yh-05919-geb30094-dirty #308
> > [ 290.271775] -------------------------------------------------------
> > [ 290.291512] swapper/1 is trying to acquire lock:
> > [ 290.291725] ((&(&qdev->mpi_port_cfg_work)->work)){+.+...}, at:
> > [<ffffffff81096419>] wait_on_work+0x0/0xff
> > [ 290.311643]
> > [ 290.311644] but task is already holding lock:
> > [ 290.311915] (rtnl_mutex){+.+.+.}, at: [<ffffffff81bb094d>]
> > rtnl_lock+0x17/0x19
> > [ 290.331681]
> > [ 290.331682] which lock already depends on the new lock.
> > [ 290.331684]
> > [ 290.351491]
> > [ 290.351492] the existing dependency chain (in reverse order) is:
> > [ 290.351830]
> > [ 290.351831] -> #1 (rtnl_mutex){+.+.+.}:
> > [ 290.371562] [<ffffffff810ae6b6>] lock_acquire+0xca/0xf0
> > [ 290.371824] [<ffffffff81cdbf5d>] mutex_lock_nested+0x60/0x2b8
> > [ 290.391539] [<ffffffff81bb094d>] rtnl_lock+0x17/0x19
> > [ 290.411250] [<ffffffff818501ad>] ql_mpi_port_cfg_work+0x1f/0x1ad
> > [ 290.411606] [<ffffffff81095189>] process_one_work+0x234/0x3e8
> > [ 290.431282] [<ffffffff81095663>] worker_thread+0x17f/0x261
> > [ 290.431583] [<ffffffff8109a633>] kthread+0xa0/0xa8
> > [ 290.451279] [<ffffffff8103a914>] kernel_thread_helper+0x4/0x10
> > [ 290.451581]
> > [ 290.451582] -> #0 ((&(&qdev->mpi_port_cfg_work)->work)){+.+...}:
> > [ 290.471483] [<ffffffff810ada85>] __lock_acquire+0x113c/0x1813
> > [ 290.491177] [<ffffffff810ae6b6>] lock_acquire+0xca/0xf0
> > [ 290.491451] [<ffffffff8109646c>] wait_on_work+0x53/0xff
> > [ 290.511128] [<ffffffff810965da>] __cancel_work_timer+0xc2/0x102
> > [ 290.511434] [<ffffffff8109662c>] cancel_delayed_work_sync+0x12/0x14
> > [ 290.531233] [<ffffffff81847646>] ql_cancel_all_work_sync+0x64/0x68
> > [ 290.531563] [<ffffffff818499d5>] ql_adapter_down+0x23/0xf6
> > [ 290.551298] [<ffffffff81849ca7>] qlge_close+0x67/0x76
> > [ 290.571015] [<ffffffff81ba3853>] __dev_close+0x7b/0x89
> > [ 290.571297] [<ffffffff81ba5535>] __dev_change_flags+0xad/0x131
> > [ 290.590974] [<ffffffff81ba563a>] dev_change_flags+0x21/0x57
> > [ 290.591280] [<ffffffff827de30e>] ic_close_devs+0x2e/0x48
> > [ 290.610978] [<ffffffff827df332>] ip_auto_config+0xbc9/0xe84
> > [ 290.611280] [<ffffffff810002da>] do_one_initcall+0x57/0x135
> > [ 290.630977] [<ffffffff8278ef8a>] kernel_init+0x16c/0x1f6
> > [ 290.631263] [<ffffffff8103a914>] kernel_thread_helper+0x4/0x10
> > [ 290.651000]
> > [ 290.651001] other info that might help us debug this:
> > [ 290.651003]
> > [ 290.670829] 1 lock held by swapper/1:
> > [ 290.671013] #0: (rtnl_mutex){+.+.+.}, at: [<ffffffff81bb094d>]
> > rtnl_lock+0x17/0x19
> > [ 290.690819]
> > [ 290.690820] stack backtrace:
> > [ 290.691054] Pid: 1, comm: swapper Not tainted
> > 2.6.37-rc4-tip-yh-05919-geb30094-dirty #308
> > [ 290.710805] Call Trace:
> > [ 290.710938] [<ffffffff810aa296>] ? print_circular_bug+0xaf/0xbe
> > [ 290.730683] [<ffffffff810ada85>] ? __lock_acquire+0x113c/0x1813
> > [ 290.730955] [<ffffffff81095d70>] ? wait_on_cpu_work+0xdb/0x114
> > [ 290.750672] [<ffffffff81096419>] ? wait_on_work+0x0/0xff
> > [ 290.750939] [<ffffffff810ae6b6>] ? lock_acquire+0xca/0xf0
> > [ 290.770664] [<ffffffff81096419>] ? wait_on_work+0x0/0xff
> > [ 290.770920] [<ffffffff8109646c>] ? wait_on_work+0x53/0xff
> > [ 290.790575] [<ffffffff81096419>] ? wait_on_work+0x0/0xff
> > [ 290.790821] [<ffffffff810965da>] ? __cancel_work_timer+0xc2/0x102
> > [ 290.810559] [<ffffffff8109662c>] ? cancel_delayed_work_sync+0x12/0x14
> > [ 290.810855] [<ffffffff81847646>] ? ql_cancel_all_work_sync+0x64/0x68
> > [ 290.830594] [<ffffffff818499d5>] ? ql_adapter_down+0x23/0xf6
> > [ 290.830867] [<ffffffff81849ca7>] ? qlge_close+0x67/0x76
> > [ 290.850568] [<ffffffff81ba3853>] ? __dev_close+0x7b/0x89
> > [ 290.850829] [<ffffffff81ba5535>] ? __dev_change_flags+0xad/0x131
> > [ 290.870540] [<ffffffff81ba563a>] ? dev_change_flags+0x21/0x57
> > [ 290.870815] [<ffffffff827de30e>] ? ic_close_devs+0x2e/0x48
> > [ 290.890595] [<ffffffff827df332>] ? ip_auto_config+0xbc9/0xe84
> > [ 290.910247] [<ffffffff81cda1e3>] ? printk+0x41/0x43
> > [ 290.910488] [<ffffffff827de769>] ? ip_auto_config+0x0/0xe84
> > [ 290.910747] [<ffffffff810002da>] ? do_one_initcall+0x57/0x135
> > [ 290.930455] [<ffffffff8278ef8a>] ? kernel_init+0x16c/0x1f6
> > [ 290.930743] [<ffffffff8103a914>] ? kernel_thread_helper+0x4/0x10
> > [ 290.950419] [<ffffffff81cde23c>] ? restore_args+0x0/0x30
> > [ 290.970152] [<ffffffff8278ee1e>] ? kernel_init+0x0/0x1f6
> > [ 290.970398] [<ffffffff8103a910>] ? kernel_thread_helper+0x0/0x10
> > --
> > To unsubscribe from this list: send the line "unsubscribe netdev" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
>
next prev parent reply other threads:[~2010-12-05 23:02 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-30 23:28 qlge warning Yinghai Lu
2010-12-03 20:56 ` Jarek Poplawski
2010-12-05 22:27 ` Ron Mercer [this message]
2010-12-11 21:06 ` [net-2.6 PATCH 1/1] qlge: Fix deadlock when cancelling worker Ron Mercer
2010-12-12 23:04 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101205222718.GA2609@linux-ox1b.qlogic.org \
--to=ron.mercer@qlogic.com \
--cc=Linux-Driver@qlogic.com \
--cc=davem@davemloft.net \
--cc=jarkao2@gmail.com \
--cc=mingo@elte.hu \
--cc=netdev@vger.kernel.org \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).