On 06/15/2012 11:46 PM, Bjorn Helgaas wrote: > I wrote: > >> But the code in the init path is ridiculously, embarrassingly complicated ... > > On Fri, Jun 15, 2012 at 1:15 AM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > >> here cache cfg too early. should do that after >> >> pci_mmcfg_reject_broken(). >> >> otherwise will use mcfg even try to reject that before. > ... This is an issue and I have worked out a patch for this, actually the patch produces better readable code. >> that really change the logic. >> >> looks like it will break mrst/sfi path. >> >> the scan from pci_legacy_init() for mrst/sfi will not have ext_pci_ops >> set for bus 0. > > I rest my case. The current init path is unmaintainable. I think it doesn't change the logic here. I have paid special attention to the SFI staff when preparing the patch. On systems with SFI instead of ACPI, such as Moorsetown, there's no ACPI root pointer table available, so acpi_initialize() will fail and set acpi_disabled to true. We have checked "!acpi_disabled" before calling free_all_mmcfg(), that means we won't call free_all_mmcfg() on SFI platforms. > > I'll wait for a v8 (or later) with fixes for the build issues > Fengguang found and Yinghai's ack. It will make things somewhat > easier for me if you start with my topic/jiang-mmconfig-v7 branch. Sure, will rebase my v8 patches onto this branch tomorrow. > > 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