> I applied your patch and it works fine for me, but I think that there are
> some hidden bugs in it. Therefore I have fixed them and sent attached a patch
> for your patch:
Thanks a lot.
> 1) The next PCI bus number to try is the "b->subordinate+1" and not the
> "b->number+1", since there may be other child PCI busses behind a
> PCI bus (PCI-to-PCI bridges).
OK.
> 2) The kmalloc should have GFP_ATOMIC and not GFP_KERNEL, since we don't
> want to have the GFP_WAIT flag set (this is for the coherency with
> the way the child PCI busses structures are allocated in pci.c).
There should be no difference since there are no user processes running
at this point.
> 3) The new PCI busses discovered should not have any parent, since they are
> directly attached to the processor bus (the pci_root is *NOT* their
> parent).
It probably doesn't matter, but you are probably right. The patch I've sent
you was purely experimental -- I only want to know whether this method can
be applied to solve all known peer bridge problems.
> 4) The first argument of pci_find_slot() must be the bus number and not the
> bus structure pointer.
My fault -- I didn't try to compile the patch :)
> Finally, the "pci_root.self" field is *NOT* initialized, as the other PCI
> busses. I think that I should be coherent to do it in the driver/pci/pci.c
> machine-independent file.
Good idea.
Have a nice fortnight
-- Martin `MJ' Mares <mj@ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/ Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth "Q: Do you believe in One God? A: Yes, up to isomorphism."- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html