From: Takashi Sakamoto Date: Mon, 8 Sep 2025 01:21:08 +0000 (+0900) Subject: firewire: core: code refactoring whether root node is cycle master capable X-Git-Tag: v6.18-rc1~159^2~25 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a4bac55d99d37976209e2fc2c32bd3dfc86b0447;p=thirdparty%2Flinux.git firewire: core: code refactoring whether root node is cycle master capable The check of cycle master capability in root node is currently just in a condition branch. In this case, the required variable should be within the branch. This commit is just for the purpose. Link: https://lore.kernel.org/r/20250908012108.514698-12-o-takashi@sakamocchi.jp Signed-off-by: Takashi Sakamoto --- diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c index b430a70a7eeb0..474d8066e090b 100644 --- a/drivers/firewire/core-card.c +++ b/drivers/firewire/core-card.c @@ -289,12 +289,10 @@ static void bm_work(struct work_struct *work) 63, 5, 7, 8, 10, 13, 16, 18, 21, 24, 26, 29, 32, 35, 37, 40 }; struct fw_card *card __free(card_unref) = from_work(card, work, bm_work.work); - struct fw_device *root_device; struct fw_node *root_node __free(node_unref) = NULL; int root_id, new_root_id, irm_id, local_id; int expected_gap_count, generation, grace; bool do_reset = false; - bool root_device_is_cmc; lockdep_assert_held(&card->lock); @@ -308,8 +306,6 @@ static void bm_work(struct work_struct *work) generation = card->generation; root_node = fw_node_get(card->root_node); - root_device = fw_node_get_device(root_node); - root_device_is_cmc = root_device && root_device->cmc; root_id = root_node->node_id; irm_id = card->irm_node->node_id; @@ -519,9 +515,11 @@ static void bm_work(struct work_struct *work) reset_bus(card, card_gap_count != 0); /* Will allocate broadcast channel after the reset. */ } else { + struct fw_device *root_device = fw_node_get_device(root_node); + spin_unlock_irq(&card->lock); - if (root_device_is_cmc) { + if (root_device && root_device->cmc) { // Make sure that the cycle master sends cycle start packets. __be32 data = cpu_to_be32(CSR_STATE_BIT_CMSTR); int rcode = fw_run_transaction(card, TCODE_WRITE_QUADLET_REQUEST,