• Jan Beulich's avatar
    xen-pciback: return proper values during BAR sizing · d2bd05d8
    Jan Beulich authored
    Reads following writes with all address bits set to 1 should return all
    changeable address bits as one, not the BAR size (nor, as was the case
    for the upper half of 64-bit BARs, the high half of the region's end
    address). Presumably this didn't cause any problems so far because
    consumers use the value to calculate the size (usually via val & -val),
    and do nothing else with it.
    
    But also consider the exception here: Unimplemented BARs should always
    return all zeroes.
    
    And finally, the check for whether to return the sizing address on read
    for the ROM BAR should ignore all non-address bits, not just the ROM
    Enable one.
    Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
    Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
    d2bd05d8
conf_space_header.c 9.98 KB