sPAPRTCETable has a vfio_accel flag which is passed to kvmppc_create_spapr_tce() and controls whether to create a guest view table in KVM as this depends on the host kernel ability to accelerate H_PUT_TCE for VFIO devices. We would set this flag at the moment when sPAPRTCETable is created in spapr_tce_new_table() and use when the table is allocated in spapr_tce_table_realize().
Now we explicitly enable/disable DMA windows via spapr_tce_table_enable() and spapr_tce_table_disable() and can pass this flag directly without caching it in sPAPRTCETable. This removes the flag. This should cause no behavioural change. Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru> --- Changes: v8: * new to patchset, this is cleanup --- hw/ppc/spapr_iommu.c | 8 +++----- include/hw/ppc/spapr.h | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/hw/ppc/spapr_iommu.c b/hw/ppc/spapr_iommu.c index fbca136..1378a7a 100644 --- a/hw/ppc/spapr_iommu.c +++ b/hw/ppc/spapr_iommu.c @@ -207,7 +207,7 @@ sPAPRTCETable *spapr_tce_new_table(DeviceState *owner, uint32_t liobn) return tcet; } -static void spapr_tce_table_do_enable(sPAPRTCETable *tcet) +static void spapr_tce_table_do_enable(sPAPRTCETable *tcet, bool vfio_accel) { if (!tcet->nb_table) { return; @@ -217,7 +217,7 @@ static void spapr_tce_table_do_enable(sPAPRTCETable *tcet) tcet->nb_table, tcet->page_shift, &tcet->fd, - tcet->vfio_accel); + vfio_accel); memory_region_set_size(&tcet->iommu, (uint64_t)tcet->nb_table << tcet->page_shift); @@ -236,9 +236,8 @@ void spapr_tce_table_enable(sPAPRTCETable *tcet, tcet->bus_offset = bus_offset; tcet->page_shift = page_shift; tcet->nb_table = nb_table; - tcet->vfio_accel = vfio_accel; - spapr_tce_table_do_enable(tcet); + spapr_tce_table_do_enable(tcet, vfio_accel); } void spapr_tce_table_disable(sPAPRTCETable *tcet) @@ -256,7 +255,6 @@ void spapr_tce_table_disable(sPAPRTCETable *tcet) tcet->bus_offset = 0; tcet->page_shift = 0; tcet->nb_table = 0; - tcet->vfio_accel = false; } static void spapr_tce_table_unrealize(DeviceState *dev, Error **errp) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index ed68c95..1da0ade 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -559,7 +559,6 @@ struct sPAPRTCETable { uint32_t page_shift; uint64_t *table; bool bypass; - bool vfio_accel; int fd; MemoryRegion iommu; struct VIOsPAPRDevice *vdev; /* for @bypass migration compatibility only */ -- 2.4.0.rc3.8.gfb3e7d5