Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1218257

Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat

From "Serge E. Hallyn" <serge@hallyn.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat
Date 2015-09-03 15:50 +0200
Message-ID <q4D3Q-5aZ-9@gated-at.bofh.it> (permalink)
References <q4fNU-5vS-19@gated-at.bofh.it> <q4g7g-683-1@gated-at.bofh.it> <q4j57-1TL-1@gated-at.bofh.it> <q4qpY-3ZU-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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)

Acked-by: Serge Hallyn <serge.hallyn@canonical.com>

> 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) {
--
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/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] security: device_cgroup: fix RCU lockdep splat Felipe Balbi <balbi@ti.com> - 2015-08-31 22:50 +0200
  Re: [PATCH] security: device_cgroup: fix RCU lockdep splat Sebastian Ott <sebott@linux.vnet.ibm.com> - 2015-09-01 11:50 +0200
    Re: [PATCH] security: device_cgroup: fix RCU lockdep splat Felipe Balbi <balbi@ti.com> - 2015-09-01 15:10 +0200
      Re: [PATCH] security: device_cgroup: fix RCU lockdep splat Josh Boyer <jwboyer@fedoraproject.org> - 2015-09-02 14:30 +0200
        Re: [PATCH] security: device_cgroup: fix RCU lockdep splat Felipe Balbi <balbi@ti.com> - 2015-09-02 15:00 +0200
          [PATCH v2] security: device_cgroup: fix RCU lockdep splat Felipe Balbi <balbi@ti.com> - 2015-09-02 15:20 +0200
            Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat Josh Boyer <jwboyer@fedoraproject.org> - 2015-09-02 17:30 +0200
            Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat Tejun Heo <tj@kernel.org> - 2015-09-02 18:30 +0200
              Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-09-03 02:20 +0200
                Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat "Serge E. Hallyn" <serge@hallyn.com> - 2015-09-03 15:50 +0200
                Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-09-04 03:20 +0200
                Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat Josh Boyer <jwboyer@fedoraproject.org> - 2015-09-03 16:00 +0200
                Re: [PATCH v2] security: device_cgroup: fix RCU lockdep splat "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-09-04 03:20 +0200

csiph-web