• Stefan Richter's avatar
    firewire: fully initialize fw_transaction before marking it pending · e9aeb46c
    Stefan Richter authored
    In theory, card->flush_timer could already access a transaction between
    fw_send_request()'s spin_unlock_irqrestore and the rest of what happens
    in fw_send_request().  This would happen if the process which sends the
    request is preempted and put to sleep right after spin_unlock_irqrestore
    for longer than 100ms.
    
    Therefore we fill in everything in struct fw_transaction at which the
    flush_timer might look at before we lift the lock.
    
    To do:  Ensure that the timer does not pick up the transaction before
    the time of the AT request event plus split transaction timeout.
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    e9aeb46c
fw-transaction.c 25.6 KB