[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aR2JE-wBHlTTO4YX@kuha>
Date: Wed, 19 Nov 2025 11:08:35 +0200
From: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
To: Stephanie Gawroriski <xerthesquirrel@...il.com>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: Re: Linux 6.18-rc6
Hi
> > > Unrelated to this, after suspending and docking my laptop to my dock, I
> > > get
> > > this now:
> > >
> > > [50598.774359] ------------[ cut here ]------------
> > > [50598.774371] kernfs: can not remove 'typec', no directory
> > > [50598.774389] WARNING: CPU: 2 PID: 48932 at fs/kernfs/dir.c:1706
> > > kernfs_remove_by_name_ns+0xcf/0xe0
> >
> > Ok, that is indeed unrelated, and should be mostly harmless apart from
> > the scary message. Do you see any other effects than the noise in the
> > logs?
>
> Not that I know of.
>
> > Somebody is trying to remove a sysfs entry that has no parent,
> > presumably because it was never registered in the first place.
> >
> > At a guess, it's some error handling cleanup that is done
> > unconditionally, unregistering an entry even when the original
> > registration failed. Or unregistering twice.
> >
> > Looks like ucsi / typec handling:
> > > [50598.774763] Call Trace:
> > > [50598.774775] typec_unregister_partner+0x6c/0x110
> > > [50598.774787] ucsi_unregister_partner+0x103/0x140
> > > [50598.774794] ucsi_handle_connector_change+0x34d/0x3e0
> > > [50598.774803] process_one_work+0x18b/0x340
> > > [50598.774811] worker_thread+0x256/0x3a0
> > > [50598.774824] kthread+0xfc/0x240
> >
> > but that said, I don't see why this would be new behavior. I don't see
> > anything that has changed in this area lately in the typec class
> > handling.
> >
> > In fact, looking around, I see much older reports that look a bit like
> > this, so I don't think it's new.
> >
> > Adding Greg and Heikki who might know what is going on. See
> >
> > https://lore.kernel.org/all/2203148.PYKUYFuaPT@arborvitaetree/
> >
> > for original report.
> >
> > Linus
>
> I really only noticed it when I was looking in dmesg very recently to see if
> there were any application crashes due to huge_memory issue. I do look in
> dmesg often enough, but mostly to see if devices are being recognized properly
> or other events such as when the embedded JVM I am working on split locks.
Thanks for the report. It looks like the code does not increment the
reference count of the USB device that is liked to the typec partner.
Is it possible for you to test this?
diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
index 9b2647cb199b..4ace92af9856 100644
--- a/drivers/usb/typec/class.c
+++ b/drivers/usb/typec/class.c
@@ -805,6 +805,8 @@ static void typec_partner_link_device(struct typec_partner *partner, struct devi
return;
}
+ get_device(dev);
+
if (partner->attach)
partner->attach(partner, dev);
}
@@ -816,6 +818,8 @@ static void typec_partner_unlink_device(struct typec_partner *partner, struct de
if (partner->deattach)
partner->deattach(partner, dev);
+
+ put_device(dev);
}
/**
--
heikki
Powered by blists - more mailing lists