diff options
Diffstat (limited to 'drivers/thunderbolt/debugfs.c')
| -rw-r--r-- | drivers/thunderbolt/debugfs.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/thunderbolt/debugfs.c b/drivers/thunderbolt/debugfs.c index 4339e706cc3a..f92ad71ef983 100644 --- a/drivers/thunderbolt/debugfs.c +++ b/drivers/thunderbolt/debugfs.c @@ -942,7 +942,8 @@ 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); -	debugfs_remove_recursive(debugfs_lookup("margining", parent)); +	if (parent) +		debugfs_remove_recursive(debugfs_lookup("margining", parent));  	kfree(port->usb4->margining);  	port->usb4->margining = NULL; @@ -967,19 +968,18 @@ static void margining_switch_init(struct tb_switch *sw)  static void margining_switch_remove(struct tb_switch *sw)  { +	struct tb_port *upstream, *downstream;  	struct tb_switch *parent_sw; -	struct tb_port *downstream;  	u64 route = tb_route(sw);  	if (!route)  		return; -	/* -	 * Upstream is removed with the router itself but we need to -	 * remove the downstream port margining directory. -	 */ +	upstream = tb_upstream_port(sw);  	parent_sw = tb_switch_parent(sw);  	downstream = tb_port_at(route, parent_sw); + +	margining_port_remove(upstream);  	margining_port_remove(downstream);  }  |