diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-09-06 20:50:29 +0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-09-12 16:48:40 +0400 |
commit | b171e204b32b69e241af994d6e9be559e33535c1 (patch) | |
tree | 0ba90b20dfed4e721a573e2dfe9e4584e8a80737 /drivers/firewire/core-transaction.c | |
parent | 18668ff9a3232d5f942a2f7abc1ad67d2760dcdf (diff) | |
download | linux-b171e204b32b69e241af994d6e9be559e33535c1.tar.xz |
firewire: core: fix race with parallel PCI device probe
The config ROM buffer received from generate_config_rom is a globally
shared static buffer. Extend the card_mutex protection in fw_add_card
until after the config ROM was copied into the card driver's buffer.
Otherwise, parallelized card driver probes may end up with ROM contents
that were meant for a different card.
firewire-ohci's card->driver->enable hook is safe to be called within
the card_mutex. Furthermore, it is safe to reorder card_list update
versus card enable, which simplifies the code a little.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/core-transaction.c')
0 files changed, 0 insertions, 0 deletions