• Stefan Richter's avatar
    firewire: core: fix "giving up on config rom" with Panasonic AG-DV2500 · d54423c6
    Stefan Richter authored
    The Panasonic AG-DV2500 tape deck contains an invalid entry in its
    configuration ROM root directory:  A leaf pointer with the undefined key
    ID 0 and an offset that points way out of the standard config ROM area.
    This caused firewire-core to dismiss the device with the generic log
    message "giving up on config rom for node id...", after which it was of
    course impossible to access the tape deck with dvgrab or any other
    program.  https://bugzilla.redhat.com/show_bug.cgi?id=449252#c29
    
    The fix is to simply ignore this invalid ROM entry and proceed to read
    the valid rest of the ROM.  There is a catch though:  When the kernel
    later iterates over the ROM, it would be nasty having to check again for
    such too large ROM offsets.  Therefore we manipulate the defective or
    unsupported ROM entry to become a harmless immediate entry that won't
    have any side effects later (an entry with the value 0x00000000).
    
    Reported-by: George Chriss
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    d54423c6
core-device.c 33.2 KB