[PATCH 5/5] firewire: core: use spinlock without irqsave for card topology_map member
From: Takashi Sakamoto
Date: Sat Sep 19 2026 - 07:51:15 EST
Asynchronous packet callbacks are now always invoked in process context.
Therefore, the topology_map member is not accessed from IRQ context.
Use spin_lock() for the topology_map member since disabling local IRQs is
unnecessary.
Signed-off-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx>
---
drivers/firewire/core-transaction.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
index 91ed85b7aa22..a2a8d755ad0a 100644
--- a/drivers/firewire/core-transaction.c
+++ b/drivers/firewire/core-transaction.c
@@ -1256,9 +1256,7 @@ static void handle_topology_map(struct fw_card *card, struct fw_request *request
start = (offset - topology_map_region.start) / 4;
- // NOTE: This can be without irqsave when we can guarantee that fw_send_request() for local
- // destination never runs in any type of IRQ context.
- scoped_guard(spinlock_irqsave, &card->topology_map.lock)
+ scoped_guard(spinlock, &card->topology_map.lock)
memcpy(payload, &card->topology_map.buffer[start], length);
fw_send_response(card, request, RCODE_COMPLETE);
--
2.53.0