Re: BAR Conflict

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This thread sort of petered out, but I don't think we changed
anything, and I think we still have a problem.  If so, I'd like to
capture it in a bugzilla so we don't forget about it.

I think the problem is that a driver (pci-stub or any other driver)
can't use request_mem_region() on a device BAR if that BAR happens to
conflict with an E820 reserved area.

>From Maxim's case, we have this:

    BIOS-e820: 00000000fa000000 - 00000000fc000000 (reserved)
    pci_root PNP0A08:00: host bridge window [mem 0xf0000000-0xfebfffff]
    pci 0000:00:1c.0: PCI bridge to [bus 05-05]
    pci 0000:00:1c.0:   bridge window [mem 0xf0000000-0xfbffffff 64bit pref]
    pci 0000:05:00.0: reg 14: [mem 0xf0000000-0xf7ffffff 64bit pref]
    pci 0000:05:00.0: reg 1c: [mem 0xf8000000-0xfbffffff 64bit pref]
    pci-stub 0000:05:00.0: BAR 3: can't reserve [mem
0xf8000000-0xfbffffff 64bit pref]

and the iomem_resource tree looks like this:

    f0000000-febfffff : PCI Bus 0000:00
      f0000000-fbffffff : PCI Bus 0000:05
        f0000000-f7ffffff : 0000:05:00.0
        f8000000-fbffffff : 0000:05:00.0
          fa000000-fbffffff : reserved

The fa000000-fbffffff reserved area (from E820) doesn't cause us to
move the 05:00.0 BAR at 0xf8000000, but it does prevent us from
requesting that region in a driver.  I think this is a bug.

Maxim, if you agree that this is still a problem, would you mind
opening a report at http://bugzilla.kernel.org?  You can put it under
Drivers/PCI and CC me if you like.

Thanks,
  Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux