public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] genirq/irqdesc: hide illegible sysfs warning of kobject_del()
@ 2022-11-12  9:39 Liu Shixin
  2022-11-12  8:59 ` Greg Kroah-Hartman
  0 siblings, 1 reply; 4+ messages in thread
From: Liu Shixin @ 2022-11-12  9:39 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Thomas Gleixner, Rafael J . Wysocki
  Cc: linux-kernel, Liu Shixin

If irq_sysfs_add() failed, system will report a warning but don't call
kobject_put() to release the descriptor. Then in irq_sysfs_del(), we
continue to call kobject_del(). In such situation, kobject_del() will
complains about a object with no parent like this:

 kernfs: can not remove 'actions', no directory
 WARNING: CPU: 0 PID: 277 at fs/kernfs/dir.c:1615 kernfs_remove_by_name_ns+0xd5/0xe0
[...]
 Call Trace:
  <TASK>
  remove_files.isra.0+0x3f/0xb0
  sysfs_remove_group+0x68/0xe0
  sysfs_remove_groups+0x41/0x70
  __kobject_del+0x45/0xc0
  kobject_del+0x2a/0x40
  free_desc+0x44/0x70
  irq_free_descs+0x5d/0x90
[...]

Use kobj->state_in_sysfs to check whether kobject is added succeed. And
if not, we should not call kobject_del().

Signed-off-by: Liu Shixin <liushixin2@huawei.com>
---
 kernel/irq/irqdesc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index a91f9001103c..a820d96210d4 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -300,10 +300,11 @@ static void irq_sysfs_del(struct irq_desc *desc)
 	/*
 	 * If irq_sysfs_init() has not yet been invoked (early boot), then
 	 * irq_kobj_base is NULL and the descriptor was never added.
+	 * And the descriptor may be added failed.
 	 * kobject_del() complains about a object with no parent, so make
 	 * it conditional.
 	 */
-	if (irq_kobj_base)
+	if (irq_kobj_base && desc->kobj.parent)
 		kobject_del(&desc->kobj);
 }
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-11-12  9:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-12  9:39 [PATCH] genirq/irqdesc: hide illegible sysfs warning of kobject_del() Liu Shixin
2022-11-12  8:59 ` Greg Kroah-Hartman
2022-11-12  9:19   ` Liu Shixin
2022-11-12  9:34     ` Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox