Re: [PATCH tip/core/rcu 3/4] md/bitmap: Fix list_entry_rcu usage

From: Steven Rostedt
Date: Mon May 18 2015 - 09:43:36 EST


On Mon, 18 May 2015 12:06:47 +1000
NeilBrown <neilb@xxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/