• Stefan Richter's avatar
    firewire: core: fix iso context shutdown on card removal · d645f4da
    Stefan Richter authored
    If isochronous contexts existed when firewire-ohci was unloaded, the
    core iso shutdown functions crashed with NULL dereferences, and buffers
    etc. weren't released.
    
    How the fix works:  We first copy the card driver's iso shutdown hooks
    into the dummy driver, then fw_destroy_nodes notifies upper layers of
    devices going away, these should shut down (including their iso
    contexts), wait_for_completion(&card->done) will be triggered after
    upper layers gave up all fw_device references, after which the card
    driver's shutdown proceeds.
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    d645f4da
core-card.c 15 KB