> -----Original Message----- > From: yhlu.kernel@xxxxxxxxx [mailto:yhlu.kernel@xxxxxxxxx] On Behalf Of > Yinghai Lu > Sent: Monday, September 21, 2015 17:32 > To: Tang, Jason (ES) > Cc: Bjorn Helgaas; linux-pci@xxxxxxxxxxxxxxx > Subject: Re: :Re: [PATCH v1 3/7] PCI: Let kcmdline reserve bus > numbers for hotplug bridges > > On Mon, Sep 21, 2015 at 9:01 AM, Tang, Jason (ES) <Jason.Tang2@xxxxxxx> > wrote: > > I have tested the case where a subsequent bridge has not been probed yet > and the BIOS is assigning it the same bus number. The behavior I observed > is that conflicting bus numbers will be fixed during the second pass of > PCI probing. See pci_scan_bridge() in drivers/pci/probe.c, lines 875-880 > on tag v4.3-rc2. Also observe how patch 7 in my series updates the > preceding conditional (line 874) to also check if the device is a > hotpluggable bridge. > > > > so there is a window that two peer bridges have been configured to > overlapped bus range? >From what I have seen, yes, for a brief moment bridges/endpoints will have overlapping numbers. At least on my system, the kernel fixes that problem during pass 2 by reenumerating devices in reverse order. > >> Also it could even cross the boundary to other peer root bus range. > > > > I am not sure what you mean by this. Can you elaborate? > > couple peer bus range: > root bus 0: [0,7f], root bus [80, ff] > if one bridge under first root bus get add range blindly, it will > cross the boundary at 0x7f. None of my test systems have multiple roots, so I am unable to test this scenario. ��.n��������+%������w��{.n�����{���"�)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥