diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2022-05-11 12:37:19 -0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2022-05-11 12:37:19 -0300 |
commit | 467cd948f8a92086441dd9b9859885132f1adc35 (patch) | |
tree | df940b0e885f7c670ecf80249aeb760b2d09a663 /drivers/firewire/core-topology.c | |
parent | cad10ce36671c99dde850de7bd4ca0d8df66c47f (diff) | |
parent | feb9c5e19e913b53cb536a7aa7c9f20107bb51ec (diff) | |
download | linux-467cd948f8a92086441dd9b9859885132f1adc35.tar.gz linux-467cd948f8a92086441dd9b9859885132f1adc35.tar.bz2 linux-467cd948f8a92086441dd9b9859885132f1adc35.zip |
Merge remote-tracking branch 'torvalds/master' into perf/core
Get fixes sent via perf/urgent, etc.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'drivers/firewire/core-topology.c')
-rw-r--r-- | drivers/firewire/core-topology.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/firewire/core-topology.c b/drivers/firewire/core-topology.c index b63d55f5ebd3..f40c81534381 100644 --- a/drivers/firewire/core-topology.c +++ b/drivers/firewire/core-topology.c @@ -375,16 +375,13 @@ static void report_found_node(struct fw_card *card, card->bm_retries = 0; } +/* Must be called with card->lock held */ void fw_destroy_nodes(struct fw_card *card) { - unsigned long flags; - - spin_lock_irqsave(&card->lock, flags); card->color++; if (card->local_node != NULL) for_each_fw_node(card, card->local_node, report_lost_node); card->local_node = NULL; - spin_unlock_irqrestore(&card->lock, flags); } static void move_tree(struct fw_node *node0, struct fw_node *node1, int port) @@ -510,6 +507,8 @@ void fw_core_handle_bus_reset(struct fw_card *card, int node_id, int generation, struct fw_node *local_node; unsigned long flags; + spin_lock_irqsave(&card->lock, flags); + /* * If the selfID buffer is not the immediate successor of the * previously processed one, we cannot reliably compare the @@ -521,8 +520,6 @@ void fw_core_handle_bus_reset(struct fw_card *card, int node_id, int generation, card->bm_retries = 0; } - spin_lock_irqsave(&card->lock, flags); - card->broadcast_channel_allocated = card->broadcast_channel_auto_allocated; card->node_id = node_id; /* |