Re: [PATCH 3/3] PCI, acpiphp: Use res->flags to determine whether the resouce is valid

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

 



On Thu, Aug 16, 2012 at 6:58 PM, Yijing Wang <wangyijing@xxxxxxxxxx> wrote:
> Hi Bjorn,
>    Please ignore these three patches, I'm very sorry I still have some confusion about allocating resources
> to pci devices.So this patch is not appropriate. I will provide new version patches when I find a better
> solution for this problem.

We don't have a uniform way of detecting unassigned BARs and handling
resource allocation failures yet.  When we make that all consistent, I
think it will make it more obvious how to do these patches.

I think patch 2/3 (the list_for_each_safe() one) is probably still a
good bug fix, so with your permission, I'll keep that one.

>> When we hot plug pci devices, system will allocate resources to these new add
>> devices, pci_bus_assign_resources() will be called.If the pci devices was assigned
>> resource fail, the resource struct will reset to zero.So I think use res->flags here
>> to determine whether the resource is valid is reliable.
>>
>> Signed-off-by: Yijing Wang <wangyijing@xxxxxxxxxx>
>> ---
>>  drivers/pci/hotplug/acpiphp_glue.c |    4 +---
>>  1 files changed, 1 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
>> index 7bbd6bf..2161902 100644
>> --- a/drivers/pci/hotplug/acpiphp_glue.c
>> +++ b/drivers/pci/hotplug/acpiphp_glue.c
>> @@ -1084,13 +1084,11 @@ static void acpiphp_sanitize_bus(struct pci_bus *bus)
>>  {
>>       struct pci_dev *dev, *tmp;
>>       int i;
>> -     unsigned long type_mask = IORESOURCE_IO | IORESOURCE_MEM;
>>
>>       list_for_each_entry_safe(dev, tmp, &bus->devices, bus_list) {
>>               for (i=0; i<PCI_BRIDGE_RESOURCES; i++) {
>>                       struct resource *res = &dev->resource[i];
>> -                     if ((res->flags & type_mask) && !res->start &&
>> -                                     res->end) {
>> +                     if (!res->flags) {
>>                               /* Could not assign a required resources
>>                                * for this device, remove it */
>>                               pci_stop_and_remove_bus_device(dev);
>>
>
>
> --
> Thanks!
> Yijing
>
--
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