Messages in this thread | | | From | Bjorn Helgaas <> | Date | Sat, 8 Mar 2014 07:12:19 -0700 | Subject | Re: [Intel-gfx] agp/intel: can't ioremap flush page - no chipset flushing |
| |
On Fri, Mar 7, 2014 at 1:40 PM, Bjorn Helgaas <bhelgaas@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
| |