[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 1/1] s390 pci infrastructure modelling
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v4 1/1] s390 pci infrastructure modelling |
Date: |
Thu, 9 Jul 2015 10:48:25 +0300 |
On Wed, Jul 08, 2015 at 01:44:55PM +0800, Yi Min Zhao wrote:
> @@ -588,9 +606,172 @@ static const TypeInfo s390_pcihost_info = {
> }
> };
>
> +static void s390_pci_device_hot_plug(HotplugHandler *hotplug_dev,
> + DeviceState *dev, Error **errp)
> +{
> + S390PCIBusDevice *zpci = S390_PCI_DEVICE(dev);
> + S390PCIBusDevice *tmp;
> + S390PCIFacility *f = S390_PCI_FACILITY(
> + object_resolve_path(TYPE_S390_PCI_FACILITY, NULL));
> +
> + QTAILQ_FOREACH(tmp, &f->zpci_list, next) {
> + /* for now, we use fid to sort the list, need to use uid instead
> + * when uid is ready.
What does ready mean in this context?
> + */
> + if (tmp->fid > zpci->fid) {
> + break;
> + }
> + }
> +
> + if (tmp) {
> + QTAILQ_INSERT_BEFORE(tmp, zpci, next);
> + } else {
> + QTAILQ_INSERT_TAIL(&f->zpci_list, zpci, next);
> + }
> + f->token_valid = false;
> +}
This still means hotplug will change the index.
How about just using an explicit property to set the index?
Harder to use but keeps code simple.
--
MST