From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: "Serge E. Hallyn" <serge@hallyn.com>
Cc: Tejun Heo <tj@kernel.org>, Felipe Balbi <balbi@ti.com>,
James Morris <james.l.morris@oracle.com>,
linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org,
Linux OMAP Mailing List <linux-omap@vger.kernel.org>
Subject: Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat
Date: Thu, 3 Sep 2015 18:14:58 -0700 [thread overview]
Message-ID: <20150904011458.GT4029@linux.vnet.ibm.com> (raw)
In-Reply-To: <20150903134839.GB8834@mail.hallyn.com>
On Thu, Sep 03, 2015 at 08:48:39AM -0500, Serge E. Hallyn wrote:
> On Wed, Sep 02, 2015 at 05:14:33PM -0700, Paul E. McKenney wrote:
> > On Wed, Sep 02, 2015 at 12:24:50PM -0400, Tejun Heo wrote:
> > > cc'ing Paul.
> > >
> > > On Wed, Sep 02, 2015 at 08:12:28AM -0500, Felipe Balbi wrote:
> > > > while booting AM437x device, the following splat
> > > > triggered:
> > > >
> > > > [ 12.005238] ===============================
> > > > [ 12.009749] [ INFO: suspicious RCU usage. ]
> > > > [ 12.014116] 4.2.0-next-20150831 #1154 Not tainted
> > > > [ 12.019050] -------------------------------
> > > > [ 12.023408] security/device_cgroup.c:405 device_cgroup:verify_new_ex called without proper synchronization!
> > > ...
> > > > [ 12.128326] [<c0317a04>] (verify_new_ex) from [<c0317f50>] (devcgroup_access_write+0x374/0x658)
> > > > [ 12.137426] [<c0317f50>] (devcgroup_access_write) from [<c00d2800>] (cgroup_file_write+0x28/0x1bc)
> > > > [ 12.146796] [<c00d2800>] (cgroup_file_write) from [<c01f1670>] (kernfs_fop_write+0xc0/0x1b8)
> > > > [ 12.155620] [<c01f1670>] (kernfs_fop_write) from [<c0177c94>] (__vfs_write+0x1c/0xd8)
> > > > [ 12.163783] [<c0177c94>] (__vfs_write) from [<c0178594>] (vfs_write+0x90/0x16c)
> > > > [ 12.171426] [<c0178594>] (vfs_write) from [<c0178db4>] (SyS_write+0x44/0x9c)
> > > > [ 12.178806] [<c0178db4>] (SyS_write) from [<c000f680>] (ret_fast_syscall+0x0/0x1c)
> > >
> > > This shouldn't be happening because devcgroup_access_write() always
> > > grabs devcgroup_mutex. Looking at the log, the culprit seems to be
> > > f78f5b90c4ff ("rcu: Rename rcu_lockdep_assert() to
> > > RCU_LOCKDEP_WARN()"). It missed the bang for the second test while
> > > inverting it, so adding rcu_read_lock() isn't the right fix here.
> > >
> > > Paul, can you please fix it?
> >
> > Gah! Please see below.
> >
> > Thanx, Paul
> >
> > ------------------------------------------------------------------------
> >
> > security/device_cgroup: Fix RCU_LOCKDEP_WARN() condition
> >
> > f78f5b90c4ff ("rcu: Rename rcu_lockdep_assert() to RCU_LOCKDEP_WARN()")
> > introduced a bug by incorrectly inverting the condition when moving from
> > rcu_lockdep_assert() to RCU_LOCKDEP_WARN(). This commit therefore fixes
> > the inversion.
> >
> > Reported-by: Felipe Balbi <balbi@ti.com>
> > Reported-by: Tejun Heo <tj@kernel.org>
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > Cc: Serge Hallyn <serge@hallyn.com>
>
> Oh, makes sense :) (didn't see the original patch when it came by, sorry)
I should have CCed you, apologies for failing to do so.
> Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Added, thank you!
Thanx, Paul
> > diff --git a/security/device_cgroup.c b/security/device_cgroup.c
> > index 73455089feef..03c1652c9a1f 100644
> > --- a/security/device_cgroup.c
> > +++ b/security/device_cgroup.c
> > @@ -401,7 +401,7 @@ static bool verify_new_ex(struct dev_cgroup *dev_cgroup,
> > bool match = false;
> >
> > RCU_LOCKDEP_WARN(!rcu_read_lock_held() &&
> > - lockdep_is_held(&devcgroup_mutex),
> > + !lockdep_is_held(&devcgroup_mutex),
> > "device_cgroup:verify_new_ex called without proper synchronization");
> >
> > if (dev_cgroup->behavior == DEVCG_DEFAULT_ALLOW) {
>
next prev parent reply other threads:[~2015-09-04 1:14 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-31 20:40 [PATCH] security: device_cgroup: fix RCU lockdep splat Felipe Balbi
2015-08-31 20:40 ` Felipe Balbi
2015-09-01 9:12 ` Sebastian Ott
2015-09-01 13:08 ` Felipe Balbi
2015-09-01 13:08 ` Felipe Balbi
2015-09-02 12:29 ` Josh Boyer
2015-09-02 12:56 ` Felipe Balbi
2015-09-02 13:12 ` [PATCH v2] " Felipe Balbi
2015-09-02 13:12 ` Felipe Balbi
2015-09-02 15:27 ` Josh Boyer
2015-09-02 16:24 ` Tejun Heo
2015-09-03 0:14 ` Paul E. McKenney
2015-09-03 13:48 ` Serge E. Hallyn
2015-09-04 1:14 ` Paul E. McKenney [this message]
2015-09-03 13:56 ` Josh Boyer
2015-09-04 1:15 ` Paul E. McKenney
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=20150904011458.GT4029@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=balbi@ti.com \
--cc=james.l.morris@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=serge@hallyn.com \
--cc=tj@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.