On Mon, Apr 16, 2018 at 2:50 PM, Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > Hi Matt, > > First of all, sorry about breaking Nautilus, and thanks very much for > tracking it down to this commit. It's a particularly weird case, as far as I've been able to discern :) > On Mon, Apr 16, 2018 at 07:33:57AM -0700, Matt Turner wrote: >> Commit f75b99d5a77d63f20e07bd276d5a427808ac8ef6 (PCI: Enforce bus >> address limits in resource allocation) broke Alpha systems using >> CONFIG_ALPHA_NAUTILUS. Alpha is 64-bit, but Nautilus systems use a >> 32-bit AMD 751/761 chipset. arch/alpha/kernel/sys_nautilus.c maps PCI >> into the upper addresses just below 4GB. >> >> I can get a working kernel by ifdef'ing out the code in >> drivers/pci/bus.c:pci_bus_alloc_resource. We can't tie >> PCI_BUS_ADDR_T_64BIT to ALPHA_NAUTILUS without breaking generic >> kernels. >> >> How can we get Nautilus working again? > > Can you collect a complete dmesg log, ideally both before and after > f75b99d5a77d? I assume the problem is that after f75b99d5a77d? we > erroneously assign space for something above 4GB. But if we know the > correct host bridge apertures, we shouldn't assign space outside them, > regardless of the PCI bus address size. I made a mistake in my initial report. Commit f75b99d5a77d is actually the last *working* commit. My apologies. The next commit is d56dbf5bab8c (PCI: Allocate 64-bit BARs above 4G when possible) and it breaks Nautilus I've confirmed. Please find attached dmesgs from those two commits, from the commit immediately before them, and another from 4.17-rc1 with my hack of #if 0'ing out the pci_bus_alloc_from_region(..., &pci_high) code. Thanks for having a look!
Attachment:
dmesg-1-36e097a8a297
Description: Binary data
Attachment:
dmesg-2-f75b99d5a77d
Description: Binary data
Attachment:
dmesg-3-d56dbf5bab8c
Description: Binary data
Attachment:
lspci
Description: Binary data
Attachment:
dmesg-patched-4.17
Description: Binary data