]> git.baikalelectronics.ru Git - kernel.git/commit
firewire: core: extend card->lock in fw_core_handle_bus_reset
authorNiels Dossche <dossche.niels@gmail.com>
Sat, 9 Apr 2022 04:12:43 +0000 (13:12 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 May 2022 10:30:05 +0000 (12:30 +0200)
commit7a6fc399e4f7ba2560a3c474ac2a2465c6eb60d3
tree7a325e9966e6879347763604e39e3579022f519a
parentf43b3a5ab4b16eff7c23a6c390987c362c1cefe4
firewire: core: extend card->lock in fw_core_handle_bus_reset

commit 370c90e44e7616ed4b4e479c59caa0c1d80fd3e2 upstream.

card->local_node and card->bm_retries are both always accessed under
card->lock.
fw_core_handle_bus_reset has a check whose condition depends on
card->local_node and whose body writes to card->bm_retries.
Both of these accesses are not under card->lock. Move the lock acquiring
of card->lock to before this check such that these accesses do happen
when card->lock is held.
fw_destroy_nodes is called inside the check.
Since fw_destroy_nodes already acquires card->lock inside its function
body, move this out to the callsites of fw_destroy_nodes.
Also add a comment to indicate which locking is necessary when calling
fw_destroy_nodes.

Cc: <stable@vger.kernel.org>
Signed-off-by: Niels Dossche <dossche.niels@gmail.com>
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20220409041243.603210-4-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/firewire/core-card.c
drivers/firewire/core-topology.c