• Stefan Richter's avatar
    firewire: core: fix upper bound of possible CSR allocations · 0c9ae701
    Stefan Richter authored
    region->end is defined as an upper bound of the requested address range,
    exclusive --- i.e. as an address outside of the range in which the
    requested CSR is to be placed.
    
    Hence 0x0001,0000,0000,0000 is the biggest valid region->end, not
    0x0000,ffff,ffff,fffc like the current check asserted.
    
    For simplicity, the fix drops the region->end & 3 test because there is
    no actual problem with these bits set in region->end.  The allocated
    address range will be quadlet aligned and of a size of multiple quadlets
    due to the checks for region->start & 3 and handler->length & 3 alone.
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    0c9ae701
core-transaction.c 33.2 KB