btw, I'm pretty happy with how this previous patch is working. It took me about 5 mins to make the last mod and now I have this:
struct device dev_root = { .path = { .type = DEVICE_PATH_ROOT }, .next = &dev_cpu_0, .link = { [0] = { .dev = &dev_root, .link = 0, .children = &dev_cpu_0 }, [1] = { .dev = &dev_root, .link = 0, .children = &dev_apic_0 }, [2] = { .dev = &dev_root, .link = 0, .children = &dev_domain_0 }, }, .links = 3, .bus = &dev_root.link[0], .next = &dev_cpu_0, .ops = &default_dev_ops_root, .dtsname = "root", .enabled = 1 };
Multiple links that work. Does this work? I don't know.
I am not sure this it totally right yet, however: struct device dev_domain_0 = { .path = {.type=DEVICE_PATH_PCI_DOMAIN,{.pci_domain={ .domain = 0x0 }}}, .device_configuration = &domain_0, .ops = &geodelx_north_domain, .link = { [0] = { .dev = &dev_domain_0, .link = 0, .children = &dev_pci_0_0_1_0 },
[1] = { .dev = &dev_domain_0, .link = 0, .children = &dev_pci_0_0_f_0 }, [2] = { .dev = &dev_domain_0, .link = 0, .children = &dev_pci_0_0_f_2 }, }, .links = 3, .bus = &dev_root.link[2], .dtsname = "domain_0", .enabled = 1 };
Anyway, no further progess is possible on k8 until this is working as the v2 config tool did for multiple links. It's the current showstopper. So we need to solve it. I'm totally out of the loop starting, well, very soon now and for next 10 days, so those with a better idea are welcome to implement it :-)
ron