]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Revert "firewire: core: disable bus management work temporarily during updating topology"
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 24 Sep 2025 13:18:23 +0000 (22:18 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 24 Sep 2025 13:20:01 +0000 (22:20 +0900)
This reverts commit abe7159125702c734e851bc0c52b51cd446298a5.

The bus manager work item acquires the spin lock of fw_card again, thus
no need to serialize it against fw_core_handle_bus_reset().

Link: https://lore.kernel.org/r/20250924131823.262136-3-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
drivers/firewire/core-topology.c

index 90b988035a2afa18f54f969b06dafe2c218eac8a..2f73bcd5696f2ba24ead7324d03ccebb5858c33f 100644 (file)
@@ -460,14 +460,8 @@ void fw_core_handle_bus_reset(struct fw_card *card, int node_id, int generation,
 {
        struct fw_node *local_node;
 
-       might_sleep();
-
        trace_bus_reset_handle(card->index, generation, node_id, bm_abdicate, self_ids, self_id_count);
 
-       // Disable bus management work during updating the cache of bus topology, since the work
-       // accesses to some members of fw_card.
-       disable_delayed_work_sync(&card->bm_work);
-
        scoped_guard(spinlock, &card->lock) {
                // If the selfID buffer is not the immediate successor of the
                // previously processed one, we cannot reliably compare the
@@ -501,8 +495,6 @@ void fw_core_handle_bus_reset(struct fw_card *card, int node_id, int generation,
                }
        }
 
-       enable_delayed_work(&card->bm_work);
-
        fw_schedule_bm_work(card, 0);
 
        // Just used by transaction layer.