[Intel-gfx] agp/intel: can't ioremap flush page - no chipset flushing

Bjorn Helgaas bhelgaas at google.com
Sat Mar 8 15:12:19 CET 2014


On Fri, Mar 7, 2014 at 1:40 PM, Bjorn Helgaas <bhelgaas at google.com> wrote:
> It seems quite possible that I broke pci_bus_alloc_resource(), which could
> cause an allocation failure like this.
>
> If you have a chance to try it, here's a debug patch against v3.14-rc5.  It
> should apply cleanly to 96702be56037.  If you can try it, please attach the
> dmesg log to the bugzilla.

Paul verified that I *did* break this.  More details in the bugzilla:
https://bugzilla.kernel.org/show_bug.cgi?id=71691

The problem is basically that I used resource_size() to figure out
whether there's any available space.  resource_size() is res->end -
res->start + 1, so applying it to [mem 0x00000000-0xffffffff] returns
zero in a kernel 32-bit resource addresses, i.e., with
CONFIG_PHYS_ADDR_T_64BIT=n.

Paul, I assume you have CONFIG_PHYS_ADDR_T_64BIT=n (which is perfectly
legal); let me know if otherwise.

  pci_bus 0000:00: pci_bus_alloc_from_region: alloc [mem 0x00000000]
size 0x1000 from bus region [0x00000000-0xffffffff]
  pci_bus 0000:00: pci_bus_alloc_from_region: [mem
0x00000000-0xffffffff]: no space (avail [mem 0x00000000-0xffffffff])

Bjorn



More information about the Intel-gfx mailing list