Re: PCI problems with multiple cpu bus - 2.1.110.

Martin Mares (mj@albireo.ucw.cz)
Thu, 23 Jul 1998 19:05:03 +0200


Hello,

> 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