[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