Subject: Re: BUG: soft lockup detected on CPU#0! (2.6.18.2 plus hacks)

From: Jarek Poplawski <[email-masked]>
Date: Thu, 11 Jan 2007 09:39:34 +0100

On Thu, Jan 11, 2007 at 09:35:26AM +0100, Jarek Poplawski wrote:
> On Thu, Jan 11, 2007 at 09:29:58AM +0100, Jarek Poplawski wrote:
> > On Wed, Jan 10, 2007 at 11:40:35PM -0800, David Miller wrote:
> > > From: Jarek Poplawski <[email-masked]>
> > > Date: Thu, 11 Jan 2007 08:24:28 +0100
> > > 
> > > > Yesterday I did what I should do earlier - checked
> > > > this simple way, with printk, and now I have no doubts
> > > > it's a bug: if you add or remove vlan devices with
> > > > vconfig, register_vlan_device and unregister_vlan_dev
> > > > are called by ioctl and they use and change rcu
> > > > procetded data without preemption disabled so vlan
> > > > rcu hash lists could become corrupted or find results
> > > > could be wrong.
> > > 
> > > Those two operations do their modifications and changes under the RTNL
> > > semaphore, via rtnl_lock() and rtnl_unlock() which guarentees that no
> > > other modifications can occur.
> > 
> > Sure, but is this even legal to be preempted during
> 
> I should even say:
> 
> "... is this even legal to be blocked during ..."
> 
> > reading or modifying rcu list? Doesn't this disturb
> > rcu cycle and make possible memory release problems?

Sorry, one more time:

Sure, but is this even legal to be preempted during
reading or modifying rcu list or be blocked while 
holding rcu protected pointer? Doesn't this disturb
rcu cycle and make possible memory release problems?

Jarek P.