On Mon, May 16, 2022, David Matlack wrote: > +static struct kvm_mmu_page *kvm_mmu_get_child_sp(struct kvm_vcpu *vcpu, > + u64 *sptep, gfn_t gfn, > + bool direct, u32 access) Please use "unsigned int" for @access, here and everywhere else, so that KVM is consistent in how it refers to access. @access can actually squeeze into a u8, but it's referenced as a "unsigned int" because sp->role.access is an unsigned int. For me at least, when I see "u<size" I always assume there is a specific reason for using an exact size, e.g. variables/fields that track hardware state. Whereas "int" and "unsigned int" give the hint that the variable is KVM metadata. @@ -2201,7 +2201,8 @@ static struct kvm_mmu_page *kvm_mmu_get_shadow_page(struct kvm_vcpu *vcpu, return __kvm_mmu_get_shadow_page(vcpu->kvm, vcpu, &caches, gfn, role); } -static union kvm_mmu_page_role kvm_mmu_child_role(u64 *sptep, bool direct, u32 access) +static union kvm_mmu_page_role kvm_mmu_child_role(u64 *sptep, bool direct, + unsigned int access) { struct kvm_mmu_page *parent_sp = sptep_to_sp(sptep); union kvm_mmu_page_role role; @@ -2242,7 +2243,7 @@ static union kvm_mmu_page_role kvm_mmu_child_role(u64 *sptep, bool direct, u32 a static struct kvm_mmu_page *kvm_mmu_get_child_sp(struct kvm_vcpu *vcpu, u64 *sptep, gfn_t gfn, - bool direct, u32 access) + bool direct, unsigned int access) { union kvm_mmu_page_role role; > +{ > + union kvm_mmu_page_role role; > + > + role = kvm_mmu_child_role(sptep, direct, access); > + return kvm_mmu_get_page(vcpu, gfn, role); > +} > +