• Bjorn Helgaas's avatar
    PCI: Fail safely if we can't handle BARs larger than 4GB · 23b13bc7
    Bjorn Helgaas authored
    We can only handle BARs larger than 4GB if both dma_addr_t and
    resource_size_t are 64 bits wide.  If dma_addr_t is 32 bits, we can't
    represent all the bus addresses, and if resource_size_t is 32 bits, we
    can't represent all the CPU addresses.
    
    Previously we cleared res->flags (at "fail:") for resources that were too
    large.  That means we think the BAR doesn't exist at all, which in turn
    means that we could enable the device even though we can't keep track of
    where the BAR is and we can't make sure it doesn't overlap something else.
    
    This preserves the type flags (MEM/IO) so we can keep from enabling the
    device.
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    23b13bc7
probe.c 51.7 KB