Re: One problem in reassign pci bus number?

From: Richard Yang
Date: Sun May 13 2012 - 21:55:46 EST


On Mon, Apr 23, 2012 at 03:46:03PM -0400, Don Dutile wrote:
>On 04/22/2012 11:52 AM, Richard Yang wrote:
>>All,
>>
>>I am reading the pci_scan_bridge() and not sure what will happen in
>>following situation.
>>
>>Suppose the kernel is not passed the pci=assign-busses.
>>
>>Below is a picture about the pci system.
>>
>> +-------+
>> | | root bridge(0,255)
>> +---+---+
>> | Bus 0
>> -----+-----------+------------------------------+--
>> | |
>> | |
>> | |
>> +----+----+ +-----+-----+
>> | | B1(1,15) | |B2(16,28)
>> +----+----+ +-----+-----+
>> | Bus 1 | Bus 16
>> -----+----------------------- ----------+----------------
>> |
>> +----+----+
>> | | B3
>> +---------+
>>
>>Suppose B1 and B2 works fine with the BIOS, which get the right bus
>>number and range.
>>
>>B3 does not works fine with the BIOS, which doesn't get the bus number.
>>
>>So in pci_scan_bridge(), B3 will be met in the second pass and get bus
>>number 16?
>
Yinghai,

Take my original question.

B3 doesn't get the bus number, which its parent doesn't have free bus
number and there is no gap between B1 and B2.

So in this case, the probe_resource() can't find bus number for B3.
Then cause pci_bridge_probe_busn_res() return non-zero.

Then B3 couldn't work fine?

--
Richard Yang
Help you, Help me

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/