Hi Yanan, On Thu, Jun 17, 2021 at 11:58 AM Yanan Wang <wangyanan55@xxxxxxxxxx> wrote: > > Also add a mm_ops member for structure stage2_attr_data, since we > will move I-cache maintenance for guest stage-2 to the permission > path and as a result will need mm_ops for some callbacks. > > Signed-off-by: Yanan Wang <wangyanan55@xxxxxxxxxx> > --- > arch/arm64/kvm/hyp/pgtable.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c > index c37c1dc4feaf..d99789432b05 100644 > --- a/arch/arm64/kvm/hyp/pgtable.c > +++ b/arch/arm64/kvm/hyp/pgtable.c > @@ -861,10 +861,11 @@ int kvm_pgtable_stage2_unmap(struct kvm_pgtable *pgt, u64 addr, u64 size) > } > > struct stage2_attr_data { > - kvm_pte_t attr_set; > - kvm_pte_t attr_clr; > - kvm_pte_t pte; > - u32 level; > + kvm_pte_t attr_set; > + kvm_pte_t attr_clr; > + kvm_pte_t pte; > + u32 level; > + struct kvm_pgtable_mm_ops *mm_ops; > }; > > static int stage2_attr_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, > @@ -903,6 +904,7 @@ static int stage2_update_leaf_attrs(struct kvm_pgtable *pgt, u64 addr, > struct stage2_attr_data data = { > .attr_set = attr_set & attr_mask, > .attr_clr = attr_clr & attr_mask, > + .mm_ops = pgt->mm_ops, > }; > struct kvm_pgtable_walker walker = { > .cb = stage2_attr_walker, > -- > 2.23.0 Reviewed-by: Fuad Tabba <tabba@xxxxxxxxxx> Thanks, /fuad > _______________________________________________ > kvmarm mailing list > kvmarm@xxxxxxxxxxxxxxxxxxxxx > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm