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/