Re: [GIT PULL] Driver core fixes for 5.7-rc7 - take 2

From: Greg KH
Date: Sun May 24 2020 - 11:00:29 EST

On Sat, May 23, 2020 at 11:14:28AM -0700, Linus Torvalds wrote:
> On Sat, May 23, 2020 at 8:29 AM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> >
> > The kobject patch that was originally in here has now been reverted, as
> > Guenter reported boot problems with it on some of his systems.
> Hmm. That original patch looks obviously buggy: in kobject_cleanup()
> it would end up doing "kobject_put(parent)" regardless of whether it
> had actually done __kobject_del() or not.
> That _could_ have been intentional, but considering the commit
> message, it clearly wasn't in this case. It might be worth re-trying
> to the commit, just with that fixed.

Turns out that wasn't the real problem here, the culprit is the
lib/test_printf.c code trying to tear down a kobject tree from the
parent down to the children (i.e. in the backwards order).

> Btw, when you end up reverting a patch that was already the top patch,
> you might as well just remove it entirely from that tree instead (ie
> "git reset --hard HEAD^" instead of "git revert HEAD").
> Unless somebody else uses your branches and you are afraid that the
> non-reverted commit escaped out in the wild that way?

I don't like rebasing or changing the HEAD like that on a public branch.
As proof, syzbot started sending me a bunch of "this is the failed
commit" messages right after your email, based on it's testing of the
tree in linux-next.

What is really odd now, is that 'git log lib/kobject.c' does not show
the change/revert at all. Is that because there was a revert? Or is it
a git config option/default somewhere that prevents that from showing

Odd, 'git blame lib/kobject.c' doesn't show it either. Yet e6764aa0e553
("Revert "kobject: Make sure the parent does not get released before its
children"") is in your tree. What am I missing here?


greg k-h