diff options
Diffstat (limited to 'drivers/thunderbolt')
-rw-r--r-- | drivers/thunderbolt/path.c | 10 | ||||
-rw-r--r-- | drivers/thunderbolt/tb.c | 4 | ||||
-rw-r--r-- | drivers/thunderbolt/tunnel.c | 10 |
3 files changed, 6 insertions, 18 deletions
diff --git a/drivers/thunderbolt/path.c b/drivers/thunderbolt/path.c index 670a12e60d66..3fc92881a197 100644 --- a/drivers/thunderbolt/path.c +++ b/drivers/thunderbolt/path.c @@ -304,17 +304,15 @@ err: } /** - * tb_path_free() - free a deactivated path + * tb_path_free() - free a path + * @path: Path to free + * + * Frees a path. The path does not need to be deactivated. */ void tb_path_free(struct tb_path *path) { int i; - if (path->activated) { - tb_WARN(path->tb, "trying to free an activated path\n") - return; - } - for (i = 0; i < path->path_length; i++) { const struct tb_path_hop *hop = &path->hops[i]; diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c index c5e96e7ac37a..8a97a4e19638 100644 --- a/drivers/thunderbolt/tb.c +++ b/drivers/thunderbolt/tb.c @@ -500,10 +500,8 @@ static void tb_stop(struct tb *tb) struct tb_tunnel *n; /* tunnels are only present after everything has been initialized */ - list_for_each_entry_safe(tunnel, n, &tcm->tunnel_list, list) { - tb_tunnel_deactivate(tunnel); + list_for_each_entry_safe(tunnel, n, &tcm->tunnel_list, list) tb_tunnel_free(tunnel); - } tb_switch_remove(tb->root_switch); tcm->hotplug_active = false; /* signal tb_handle_hotplug to quit */ } diff --git a/drivers/thunderbolt/tunnel.c b/drivers/thunderbolt/tunnel.c index 21d3393c6e9c..0bc6639c6e74 100644 --- a/drivers/thunderbolt/tunnel.c +++ b/drivers/thunderbolt/tunnel.c @@ -475,7 +475,7 @@ err_free: * tb_tunnel_free() - free a tunnel * @tunnel: Tunnel to be freed * - * The tunnel must have been deactivated. + * Frees a tunnel. The tunnel does not need to be deactivated. */ void tb_tunnel_free(struct tb_tunnel *tunnel) { @@ -485,14 +485,6 @@ void tb_tunnel_free(struct tb_tunnel *tunnel) return; for (i = 0; i < tunnel->npaths; i++) { - if (tunnel->paths[i] && tunnel->paths[i]->activated) { - tb_tunnel_WARN(tunnel, - "trying to free an activated tunnel\n"); - return; - } - } - - for (i = 0; i < tunnel->npaths; i++) { if (tunnel->paths[i]) tb_path_free(tunnel->paths[i]); } |