]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
firewire: core: disable bus management work temporarily during updating topology
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 17 Sep 2025 00:03:46 +0000 (09:03 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 17 Sep 2025 00:07:03 +0000 (09:07 +0900)
commitabe7159125702c734e851bc0c52b51cd446298a5
tree9c5be8cac3ff384041e9236b3719512d5ff3910d
parentb460b317b21d5106f3ebd34bd51b851ad355a70a
firewire: core: disable bus management work temporarily during updating topology

When processing selfID sequence, bus topology tree is (re)built, and some
members of fw_card are determined. Once determined, the members are valid
during the bus generation. The above operations are in the critical
section of fw_card spin lock.

Before building the bus topology, a work item is scheduled for bus manager
work. The bm_work() function is invoked by the work item. The function
tries to acquire the spin lock, then can be stalled until the bus topology
building finishes.

The bus manager should work once the members of fw_card are determined.
This commit suppresses the above situation by disabling the work item
during processing selfID sequence.

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