[libvirt] [PATCH 2/4] util: Slightly refactor PCI list functions

Osier Yang jyang at redhat.com
Tue Dec 4 14:08:32 UTC 2012


On 2012年12月04日 18:38, Jiri Denemark wrote:
> In order to be able to steal PCI device by its index in the list.
> ---
>   src/libvirt_private.syms |  2 ++
>   src/util/pci.c           | 60 +++++++++++++++++++++++++++++-------------------
>   src/util/pci.h           |  4 ++++
>   3 files changed, 42 insertions(+), 24 deletions(-)
>
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index 41e2629..625490f 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -1000,10 +1000,12 @@ pciDeviceListAdd;
>   pciDeviceListCount;
>   pciDeviceListDel;
>   pciDeviceListFind;
> +pciDeviceListFindIndex;
>   pciDeviceListFree;
>   pciDeviceListGet;
>   pciDeviceListNew;
>   pciDeviceListSteal;
> +pciDeviceListStealIndex;
>   pciDeviceNetName;
>   pciDeviceReAttachInit;
>   pciDeviceSetManaged;
> diff --git a/src/util/pci.c b/src/util/pci.c
> index 191f99d..3ebf6f7 100644
> --- a/src/util/pci.c
> +++ b/src/util/pci.c
> @@ -1554,35 +1554,36 @@ pciDeviceListCount(pciDeviceList *list)
>   }
>
>   pciDevice *
> -pciDeviceListSteal(pciDeviceList *list,
> -                   pciDevice *dev)
> +pciDeviceListStealIndex(pciDeviceList *list,
> +                        int idx)
>   {
> -    pciDevice *ret = NULL;
> -    int i;
> -
> -    for (i = 0; i<  list->count; i++) {
> -        if (list->devs[i]->domain   != dev->domain ||
> -            list->devs[i]->bus      != dev->bus    ||
> -            list->devs[i]->slot     != dev->slot   ||
> -            list->devs[i]->function != dev->function)
> -            continue;
> +    pciDevice *ret;
>
> -        ret = list->devs[i];
> +    if (idx<  0)
> +        return NULL;

Per the function is not static, it's better to check the upper range
of the list index too.

Assuming all the new helpers are for later patches use, ACK with
the index checking fixed.

Osier




More information about the libvir-list mailing list