Re: [Patch v2 1/1] genirq: Properly pair kobject_del with kobject_add

From: Thomas Gleixner
Date: Tue Aug 20 2019 - 07:40:06 EST


On Tue, 20 Aug 2019, Michael Kelley wrote:

> If alloc_descs fails before irq_sysfs_init has run, free_desc in the
> cleanup path will call kobject_del even though the kobject has not
> been added with kobject_add. Fix this by adding a new irq_sysfs_del
> function (within the #ifdef CONFIG_SYSFS) that conditionally calls
> kobject_del based on whether irq_sysfs_init has run.
>
> This problem surfaced because commit aa30f47cf666
> ("kobject: Add support for default attribute groups to kobj_type")
> makes kobject_del stricter about pairing with kobject_add. If the
> pairing is incorrrect, a WARNING and backtrace occur in
> sysfs_remove_group because there is no parent.
>
> Signed-off-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>
> ---
> Changes in v2:
> * Fix compile error by creating a separate irq_sysfs_del function
> to do the conditional call to kobject_del, so that all references
> to irq_kobj_base are under the #ifdef CONFIG_SYSFS.

Too late. I already fixed that up in the same way yesterday night:

https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=irq/urgent&id=d0ff14fdc987303aeeb7de6f1bd72c3749ae2a9b

The tip commit bot seems not to work right now, so you didn't get a notice.

Thanks,

tglx