On Mon, 18 May 2015 12:06:47 +1000
NeilBrown <ne...@suse.de> wrote:

> > struct mddev {
> > ...
> >     struct list_head                disks;
> > ...}
> > 
> > struct list_head {
> >          struct list_head *next, *prev;
> > };
> > 
> > The tricky thing is that "list_entry_rcu" before and after the patch is 
> > reading the same thing.
> 
> No it isn't.
> Before the patch it is passed the address of the 'next' field.  After the
> patch it is passed the contents of the 'next' field.

Right.

> 
> 
> > 
> > However in your case, the change I proposed is probably wrong I trust 
> > you on this side. :) What's your proposal to fix it with the rculist patch?
> 
> What needs fixing?  I don't see anything broken.
> 
> Maybe there is something in this "rculist patch" that I'm missing.  Can you
> point me at it?
> 

Probably some debugging tool like sparse notices that the assignment
isn't a true list entry and complains about it. In other words, I think
the real fix is to fix the debugging tool to ignore this, because the
code is correct, and this is a false positive failure, and is causing
more harm than good, because people are sending out broken patches due
to it.

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

Reply via email to