Re: [PATCH 1/1] PCI: enumerate the PCI device only removed out PCI hieratchy of OS when re-scanning PCI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tiejun.chen wrote:
> Since this patch would involve commit cc57450f, so post this to this commit
> author as well.
> 
> Anyway, I will appreciate any suggestion.
> 

Any feedback?

Thanks
Tiejun

> Thanks
> Tiejun
> 
> Tiejun Chen wrote:
>> When hot-plugging a root bridge, we always prevent assigning a bus number
>> that already exists. This makes sure we don't step over an existing bus.
>> But sometimes we only remove PCI device in PCI hieratchy of OS, i,e.
>>
>> echo 1 > /sys/bus/pci/devices/.../remove
>>
>> but actually don't hotplug this device out the platform, so in this case
>> we still should re-scan this bus to enumerate this device when re-scanning
>> PCI again.
>>
>> Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxxxxxx>
>> ---
>>  drivers/pci/probe.c |   14 ++++++++------
>>  1 files changed, 8 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
>> index 48849ff..515824e 100644
>> --- a/drivers/pci/probe.c
>> +++ b/drivers/pci/probe.c
>> @@ -724,12 +724,14 @@ int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max,
>>  		pci_write_config_word(dev, PCI_STATUS, 0xffff);
>>  
>>  		/* Prevent assigning a bus number that already exists.
>> -		 * This can happen when a bridge is hot-plugged */
>> -		if (pci_find_bus(pci_domain_nr(bus), max+1))
>> -			goto out;
>> -		child = pci_add_new_bus(bus, dev, ++max);
>> -		if (!child)
>> -			goto out;
>> +		 * This can happen when a bridge is hot-plugged, so in
>> +		 * this case we only re-scan this bus. */
>> +		child = pci_find_bus(pci_domain_nr(bus), max+1);
>> +		if (!child) {
>> +			child = pci_add_new_bus(bus, dev, ++max);
>> +			if (!child)
>> +				goto out;
>> +		}
>>  		buses = (buses & 0xff000000)
>>  		      | ((unsigned int)(child->primary)     <<  0)
>>  		      | ((unsigned int)(child->secondary)   <<  8)
> 
> 

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


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux