On Fri, Feb 19, 2016 at 3:25 PM, Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote: > +Linus (the de-facto resource guy). > > On 02/19/2016 01:10 PM, Vincent Pelletier wrote: >> >> I finally got around to rebasing some patches, and realised that the >> patch from Simon Guinot below still gets rebased over torvalds' v4.4 . >> >> Any reason it was not applied ? >> Or was the issue fixed in another, non-git-conflicting way ? (I see >> nothing recent in git log kernel/resource.c) >> >> I do not find a trace of a mail confirming that I tested it and that it >> fixes the issue. So here goes: >> Tested-by: Vincent Pelletier <plr.vincent@xxxxxxxxx> Hmm. So I'm not entirely happy with the patch, because I think the problem with using a possibly free'd parent resource at restart still exists. As far as I can tell, if we hit the IORESOURCE_MUXED case *after* we have successfully delved into a resource that wasn't busy, we will have updated "parent" in a previous iteration of the loop, and we'll not use the original parent when we then re-start after the sleep. So quite frankly, I suspect any user of MUXED memory regions is still fundamentally buggy, and IORESOURCE_MUXED has always been a hacky and broken thing. That said, I ended up applying the patch anyway, even if I despise it. For all I know, muxed users never end up having those non-busy sub-resources in practice, and maybe there is some serialization at the top level for the drivers that use it. So if testing has shown that it helps some actual case, I'll believe the testing. But the code still looks rather debatable, and the whole IORESOURCE_MUXED approach looks broken. Jesse, that came in through you and the drm tree, I think. Alan is marked as author, and there are other people who actually use and can test the code. Can you guys think about the code a bit more. I'm wondering if the *real* fix ends up being to reset the 'parent' pointer to the original top-level parent after the sleep? To recap: the patch is in my tree, but I'm not all that happy about it. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html