[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 07/23] libxl: stop using aodev->device_config in libxl__device_pci_add()...
Hi, Paul! On 11/24/20 10:01 AM, Paul Durrant wrote: > From: Paul Durrant <pdurrant@xxxxxxxxxx> > > ... to hold a pointer to the device. > > There is already a 'pci' field in 'pci_add_state' so simply use that from > the start. This also allows the 'pci' (#3) argument to be dropped from > do_pci_add(). > > NOTE: This patch also changes the type of the 'pci_domid' field in > 'pci_add_state' from 'int' to 'libxl_domid' which is more appropriate > given what the field is used for. > > Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx> Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> Thank you, Oleksandr > --- > Cc: Ian Jackson <iwj@xxxxxxxxxxxxxx> > Cc: Wei Liu <wl@xxxxxxx> > --- > tools/libs/light/libxl_pci.c | 19 +++++++------------ > 1 file changed, 7 insertions(+), 12 deletions(-) > > diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c > index 41e4b2b571..77edd27345 100644 > --- a/tools/libs/light/libxl_pci.c > +++ b/tools/libs/light/libxl_pci.c > @@ -1074,7 +1074,7 @@ typedef struct pci_add_state { > libxl__ev_qmp qmp; > libxl__ev_time timeout; > libxl_device_pci *pci; > - int pci_domid; > + libxl_domid pci_domid; > } pci_add_state; > > static void pci_add_qemu_trad_watch_state_cb(libxl__egc *egc, > @@ -1091,7 +1091,6 @@ static void pci_add_dm_done(libxl__egc *, > > static void do_pci_add(libxl__egc *egc, > libxl_domid domid, > - libxl_device_pci *pci, > pci_add_state *pas) > { > STATE_AO_GC(pas->aodev->ao); > @@ -1101,7 +1100,6 @@ static void do_pci_add(libxl__egc *egc, > /* init pci_add_state */ > libxl__xswait_init(&pas->xswait); > libxl__ev_qmp_init(&pas->qmp); > - pas->pci = pci; > pas->pci_domid = domid; > libxl__ev_time_init(&pas->timeout); > > @@ -1564,13 +1562,10 @@ void libxl__device_pci_add(libxl__egc *egc, uint32_t > domid, > int stubdomid = 0; > pci_add_state *pas; > > - /* Store *pci to be used by callbacks */ > - aodev->device_config = pci; > - aodev->device_type = &libxl__pci_devtype; > - > GCNEW(pas); > pas->aodev = aodev; > pas->domid = domid; > + pas->pci = pci; > pas->starting = starting; > pas->callback = device_pci_add_stubdom_done; > > @@ -1624,9 +1619,10 @@ void libxl__device_pci_add(libxl__egc *egc, uint32_t > domid, > GCNEW(pci_s); > libxl_device_pci_init(pci_s); > libxl_device_pci_copy(CTX, pci_s, pci); > + pas->pci = pci_s; > pas->callback = device_pci_add_stubdom_wait; > > - do_pci_add(egc, stubdomid, pci_s, pas); /* must be last */ > + do_pci_add(egc, stubdomid, pas); /* must be last */ > return; > } > > @@ -1681,9 +1677,8 @@ static void device_pci_add_stubdom_done(libxl__egc *egc, > int i; > > /* Convenience aliases */ > - libxl__ao_device *aodev = pas->aodev; > libxl_domid domid = pas->domid; > - libxl_device_pci *pci = aodev->device_config; > + libxl_device_pci *pci = pas->pci; > > if (rc) goto out; > > @@ -1718,7 +1713,7 @@ static void device_pci_add_stubdom_done(libxl__egc *egc, > pci->vdevfn = orig_vdev; > } > pas->callback = device_pci_add_done; > - do_pci_add(egc, domid, pci, pas); /* must be last */ > + do_pci_add(egc, domid, pas); /* must be last */ > return; > } > } > @@ -1734,7 +1729,7 @@ static void device_pci_add_done(libxl__egc *egc, > EGC_GC; > libxl__ao_device *aodev = pas->aodev; > libxl_domid domid = pas->domid; > - libxl_device_pci *pci = aodev->device_config; > + libxl_device_pci *pci = pas->pci; > > if (rc) { > LOGD(ERROR, domid,
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |