Message ID | TYZPR01MB478461E6616835634D0718F8D5BAA@TYZPR01MB4784.apcprd01.prod.exchangelabs.com (mailing list archive) |
---|---|
State | Accepted |
Commit | ac43c9122e4287bbdbe91e980fc2528acb72cc1e |
Headers | show |
Series | thunderbolt:debugfs:Fix memory leak with using debugfs_lookup() | expand |
On Wed, Nov 22, 2023 at 04:02:43PM +0800, Yaxiong Tian wrote: > From: Yaxiong Tian <tianyaxiong@kylinos.cn> > > As Greg said,When calling debugfs_lookup() the result must have dput() > called on it,otherwise the memory will leak over time. > So just call debugfs_lookup_and_remove() instead. > > Fixes: d0f1e0c2a699 ("thunderbolt: Add support for receiver lane margining") > Signed-off-by: Yaxiong Tian <tianyaxiong@kylinos.cn> Slightly modified the commit log and applied to thunderbolt.git/fixes, thanks!
diff --git a/drivers/thunderbolt/debugfs.c b/drivers/thunderbolt/debugfs.c index c9ddd49138d8..e324cd899719 100644 --- a/drivers/thunderbolt/debugfs.c +++ b/drivers/thunderbolt/debugfs.c @@ -959,7 +959,7 @@ static void margining_port_remove(struct tb_port *port) snprintf(dir_name, sizeof(dir_name), "port%d", port->port); parent = debugfs_lookup(dir_name, port->sw->debugfs_dir); if (parent) - debugfs_remove_recursive(debugfs_lookup("margining", parent)); + debugfs_lookup_and_remove("margining", parent); kfree(port->usb4->margining); port->usb4->margining = NULL;