Re: [patch 3/5] KVM: MMU: add kvm_mmu_shadow_walk helper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 10, 2009 at 12:17:09PM +0300, Avi Kivity wrote:
> Marcelo Tosatti wrote:
>> Required by EPT misconfiguration handler.
>>
>> Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx>
>>
>> Index: kvm/arch/x86/kvm/mmu.c
>> ===================================================================
>> --- kvm.orig/arch/x86/kvm/mmu.c
>> +++ kvm/arch/x86/kvm/mmu.c
>> @@ -3013,6 +3013,26 @@ out:
>>  	return r;
>>  }
>>  +void kvm_mmu_shadow_walk(struct kvm_vcpu *vcpu, u64 addr,
>> +			 struct mmu_shadow_walk *walk)
>> +{
>> +	struct kvm_shadow_walk_iterator iterator;
>> +
>> +	spin_lock(&vcpu->kvm->mmu_lock);
>> +	for_each_shadow_entry(vcpu, addr, iterator) {
>> +		int err;
>> +
>> +		err = walk->fn(vcpu, iterator.sptep, iterator.level, walk);
>> +		if (err)
>> +			break;
>> +
>> +		if (!is_shadow_present_pte(*iterator.sptep))
>> +			break;
>> +	}
>> +	spin_unlock(&vcpu->kvm->mmu_lock);
>> +}
>> +EXPORT_SYMBOL(kvm_mmu_shadow_walk);
>> +
>>   
>
> Isn't it simpler to invoke for_each_shadow_entry(), instead of defining  
> a callback and calling it?
>
> We had those callbacks once, then switched to for_each.

The point is its exported to use in a external module (kvm-intel.ko),
so you hide the details (such as locking) in the kvm_mmu_shadow_walk
helper. Let me know how do you prefer this to be.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux