On Wed, Dec 12, 2018 at 03:15:30PM +1100, Paul Mackerras wrote: > From: Bharata B Rao <bharata@xxxxxxxxxxxxx> > > Currently, kvm_arch_commit_memory_region() gets called with a > parameter indicating what type of change is being made to the memslot, > but it doesn't pass it down to the platform-specific memslot commit > functions. This adds the `change' parameter to the lower-level > functions so that they can use it in future. > > Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Paul Mackerras <paulus@xxxxxxxxxx> Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> > --- > arch/powerpc/include/asm/kvm_ppc.h | 6 ++++-- > arch/powerpc/kvm/book3s.c | 5 +++-- > arch/powerpc/kvm/book3s_hv.c | 3 ++- > arch/powerpc/kvm/book3s_pr.c | 3 ++- > arch/powerpc/kvm/powerpc.c | 2 +- > 5 files changed, 12 insertions(+), 7 deletions(-) > > diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h > index 9b89b19..04c5b84 100644 > --- a/arch/powerpc/include/asm/kvm_ppc.h > +++ b/arch/powerpc/include/asm/kvm_ppc.h > @@ -224,7 +224,8 @@ extern int kvmppc_core_prepare_memory_region(struct kvm *kvm, > extern void kvmppc_core_commit_memory_region(struct kvm *kvm, > const struct kvm_userspace_memory_region *mem, > const struct kvm_memory_slot *old, > - const struct kvm_memory_slot *new); > + const struct kvm_memory_slot *new, > + enum kvm_mr_change change); > extern int kvm_vm_ioctl_get_smmu_info(struct kvm *kvm, > struct kvm_ppc_smmu_info *info); > extern void kvmppc_core_flush_memslot(struct kvm *kvm, > @@ -294,7 +295,8 @@ struct kvmppc_ops { > void (*commit_memory_region)(struct kvm *kvm, > const struct kvm_userspace_memory_region *mem, > const struct kvm_memory_slot *old, > - const struct kvm_memory_slot *new); > + const struct kvm_memory_slot *new, > + enum kvm_mr_change change); > int (*unmap_hva_range)(struct kvm *kvm, unsigned long start, > unsigned long end); > int (*age_hva)(struct kvm *kvm, unsigned long start, unsigned long end); > diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c > index fd9893b..a35fb40 100644 > --- a/arch/powerpc/kvm/book3s.c > +++ b/arch/powerpc/kvm/book3s.c > @@ -830,9 +830,10 @@ int kvmppc_core_prepare_memory_region(struct kvm *kvm, > void kvmppc_core_commit_memory_region(struct kvm *kvm, > const struct kvm_userspace_memory_region *mem, > const struct kvm_memory_slot *old, > - const struct kvm_memory_slot *new) > + const struct kvm_memory_slot *new, > + enum kvm_mr_change change) > { > - kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new); > + kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new, change); > } > > int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end) > diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c > index ab43306..f4fbb7b5 100644 > --- a/arch/powerpc/kvm/book3s_hv.c > +++ b/arch/powerpc/kvm/book3s_hv.c > @@ -4371,7 +4371,8 @@ static int kvmppc_core_prepare_memory_region_hv(struct kvm *kvm, > static void kvmppc_core_commit_memory_region_hv(struct kvm *kvm, > const struct kvm_userspace_memory_region *mem, > const struct kvm_memory_slot *old, > - const struct kvm_memory_slot *new) > + const struct kvm_memory_slot *new, > + enum kvm_mr_change change) > { > unsigned long npages = mem->memory_size >> PAGE_SHIFT; > > diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c > index 4efd65d..3aeb17b 100644 > --- a/arch/powerpc/kvm/book3s_pr.c > +++ b/arch/powerpc/kvm/book3s_pr.c > @@ -1913,7 +1913,8 @@ static int kvmppc_core_prepare_memory_region_pr(struct kvm *kvm, > static void kvmppc_core_commit_memory_region_pr(struct kvm *kvm, > const struct kvm_userspace_memory_region *mem, > const struct kvm_memory_slot *old, > - const struct kvm_memory_slot *new) > + const struct kvm_memory_slot *new, > + enum kvm_mr_change change) > { > return; > } > diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c > index 2869a29..6a7a6a1 100644 > --- a/arch/powerpc/kvm/powerpc.c > +++ b/arch/powerpc/kvm/powerpc.c > @@ -696,7 +696,7 @@ void kvm_arch_commit_memory_region(struct kvm *kvm, > const struct kvm_memory_slot *new, > enum kvm_mr_change change) > { > - kvmppc_core_commit_memory_region(kvm, mem, old, new); > + kvmppc_core_commit_memory_region(kvm, mem, old, new, change); > } > > void kvm_arch_flush_shadow_memslot(struct kvm *kvm, -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature