On Tue, Oct 10, 2023 at 11:33:36AM +0300, Heikki Krogerus wrote: > Hi Douglas, > > Please always CC the mailing list. I'm not the only person working on > this code. > > On Sun, Oct 08, 2023 at 06:59:19PM -0400, Douglas Gilbert wrote: > > Hi, > > I was debugging something else in lk 6.6.0-rc1 and was tailing > > /var/log/syslog and noticed several: > > kmemleak: 6 new suspected memory leaks > > messages so I had a look and saw many of these: > > > > unreferenced object 0xffff8882943a4df8 (size 8): > > comm "kworker/u32:41", pid 73935, jiffies 4437924777 (age 6489.122s) > > hex dump (first 8 bytes): > > 70 64 35 00 82 88 ff ff pd5..... > > backtrace: > > [<ffffffff812d247c>] __kmalloc_node_track_caller+0x4c/0x150 > > [<ffffffff815c8585>] kvasprintf+0x65/0xd0 > > [<ffffffff81b1b56c>] kobject_set_name_vargs+0x1c/0x90 > > [<ffffffff8178f30e>] dev_set_name+0x4e/0x70 > > [<ffffffffa05f78b4>] usb_power_delivery_register+0x84/0xe0 [typec] > > [<ffffffffa0748112>] ucsi_register_partner_pdos+0x62/0x190 [typec_ucsi] > > [<ffffffffa07464a8>] ucsi_poll_worker+0x38/0x110 [typec_ucsi] > > [<ffffffff810a9d48>] process_one_work+0x1d8/0x4b0 > > [<ffffffff810ab149>] worker_thread+0x1c9/0x3b0 > > [<ffffffff810b60d2>] kthread+0xf2/0x130 > > [<ffffffff8102d588>] ret_from_fork+0x28/0x40 > > [<ffffffff81001aeb>] ret_from_fork_asm+0x1b/0x30 > > > > and similar variants involving UCSI. Looking at ucsi_register_partner_pdos() > > there seems to be a leak of con->partner_pd if one other the other functions > > that depend on it fail. If it was my code, I would replace most of the > > returns in that function with 'goto err;' branches which would then call > > usb_power_delivery_unregister(con->partner_pd); > > No, partner_pd object isn't there only for the PDOs. We need it even > when PDO details are not supported by the interface (PDO details are > optional in UCSI). > > I don't see any leak here. All these object, including partner_pd, are > unregistered in the end as they should, no? I found an issue that I think is causing the problem. The link between the typec and PD devices is never removed in this driver. That will prevent the device from ever being released. thanks, -- heikki