• Stefan Richter's avatar
    firewire: core: fix race with parallel PCI device probe · b171e204
    Stefan Richter authored
    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: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    b171e204
core-card.c 15 KB