From: syzbot <syzbot+a638ae70fa7b6a1353b4@syzkaller.appspotmail.com>
To: linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com
Subject: Forwarded: Re: [syzbot] [fuse?] WARNING: refcount bug in process_one_work
Date: Sat, 09 Aug 2025 06:31:38 -0700 [thread overview]
Message-ID: <68974dba.050a0220.51d73.007c.GAE@google.com> (raw)
In-Reply-To: <68894443.a00a0220.26d0e1.0014.GAE@google.com>
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.
***
Subject: Re: [syzbot] [fuse?] WARNING: refcount bug in process_one_work
Author: penguin-kernel@i-love.sakura.ne.jp
#syz test
diff --git a/drivers/md/md.c b/drivers/md/md.c
index ac85ec73a409..2362397b0808 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -646,6 +646,15 @@ static void __mddev_put(struct mddev *mddev)
* Call queue_work inside the spinlock so that flush_workqueue() after
* mddev_find will succeed in waiting for the work to be done.
*/
+ {
+ const int ref = refcount_read(&mddev->kobj.kref.refcount);
+
+ pr_warn("%s %s (%px) %d\n", __func__, mddev->kobj.name, &mddev->kobj, ref);
+ if (!ref)
+ BUG();
+ else
+ dump_stack();
+ }
queue_work(md_misc_wq, &mddev->del_work);
}
diff --git a/lib/kobject.c b/lib/kobject.c
index abe5f5b856ce..028909882389 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -641,6 +641,13 @@ struct kobject *kobject_get(struct kobject *kobj)
"kobject: '%s' (%p): is not initialized, yet kobject_get() is being called.\n",
kobject_name(kobj), kobj);
kref_get(&kobj->kref);
+ if (kobj->name && kobj->name[0] == 'm' && kobj->name[1] == 'd' &&
+ kobj->name[2] >= '0' && kobj->name[2] <= '9') {
+ const int ref = refcount_read(&kobj->kref.refcount);
+
+ pr_warn("%s %s (%px) %d->%d\n", __func__, kobj->name, kobj, ref - 1, ref);
+ dump_stack();
+ }
}
return kobj;
}
@@ -652,6 +659,13 @@ struct kobject * __must_check kobject_get_unless_zero(struct kobject *kobj)
return NULL;
if (!kref_get_unless_zero(&kobj->kref))
kobj = NULL;
+ if (kobj && kobj->name && kobj->name[0] == 'm' && kobj->name[1] == 'd' &&
+ kobj->name[2] >= '0' && kobj->name[2] <= '9') {
+ const int ref = refcount_read(&kobj->kref.refcount);
+
+ pr_warn("%s %s (%px) %d->%d\n", __func__, kobj->name, kobj, ref - 1, ref);
+ dump_stack();
+ }
return kobj;
}
EXPORT_SYMBOL(kobject_get_unless_zero);
@@ -734,6 +748,13 @@ void kobject_put(struct kobject *kobj)
WARN(1, KERN_WARNING
"kobject: '%s' (%p): is not initialized, yet kobject_put() is being called.\n",
kobject_name(kobj), kobj);
+ if (kobj->name && kobj->name[0] == 'm' && kobj->name[1] == 'd' &&
+ kobj->name[2] >= '0' && kobj->name[2] <= '9') {
+ const int ref = refcount_read(&kobj->kref.refcount);
+
+ pr_warn("%s %s (%px) %d->%d\n", __func__, kobj->name, kobj, ref, ref - 1);
+ dump_stack();
+ }
kref_put(&kobj->kref, kobject_release);
}
}
prev parent reply other threads:[~2025-08-09 13:31 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-29 21:59 [syzbot] [fuse?] WARNING: refcount bug in process_one_work syzbot
2025-08-09 13:31 ` syzbot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=68974dba.050a0220.51d73.007c.GAE@google.com \
--to=syzbot+a638ae70fa7b6a1353b4@syzkaller.appspotmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=syzkaller-bugs@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.