On Wed, 2019-06-12 at 08:27 -0500, Bjorn Helgaas wrote: > On Wed, Jun 12, 2019 at 10:06:06AM +1000, Benjamin Herrenschmidt > wrote: > > On Tue, 2019-06-11 at 18:39 -0500, Bjorn Helgaas wrote: > > > This is fine, but can we make a tiny step toward doing this in > > > generic > > > code instead of adding more arch-specific stuff? > > > > > > E.g., evaluate the _DSM in the generic acpi_pci_root_add(), set a > > > "preserve_config" bit in the struct acpi_pci_root, and test the > > > bit > > > here? > > > > I'd rather have the flag in the host bridge no ? > > Oh, of course, that would make more sense. Thinking of this ... I still believe eventually the default should be to preseve the BIOS config (see ongoing discussions about converging everybody toward the x86 model), so the flag should be the other way around. I'm thinking moving PROBE_ONLY and REASSIGN_ALL_RSRC/BUS to be host bridge flags (initially copied from the global flags). To not break things, ARM64 would start setting that 'reassign all' by default, then we can flip it. > > Talking of which, look at the ongoing discussion I have with Lorenzo > > when it comes to pci_bus_claim_resources vs. what x86 does, I'd love > > for you to chime in. I'd like to try to consolidate things further > > accross architectures but there might be reasons I don't see as to why > > things are different in that area, so ... > > I don't know any reasons why things are different per arch. In most > cases I suspect FUD. > > Speaking of which, *this* patch looks like FUD because it essentially > says "Linux shouldn't change the PCI configuration on this system" but > it offers no explanation of *why* the config needs to be preserved. I > would really like some note like "run-time firmware depends on the > addresses of device X". Oh there are a number of reasons as to why but yes, that's one of them. I can improve the comments. That said, I think everybody tends to agree that reassigning everything by default isn't a great idea, so while I still need something like this patch in asap, I'll be working towards making that stuff more common accross archs. My logic is that x86 is the most tested arch with the widest range of PCI devices and broken BIOSes. So what works for x86 should work for others (minus maybe a handful of quirks). So it doesn't make sense to have the main resource survey logic stuck in arch/x86 and everybody else growing different things. Cheers, Ben.