On 11.04.2010, at 23:51, Andre Przywara wrote:

> Alexander Graf wrote:
>> On 11.04.2010, at 23:40, Alexander Graf wrote:
>>> /* Either adds offset n to the instruction counter or takes the next
>>>   instruction pointer from the vmcb if the CPU supports it */
>>> 
>>> static u64 svm_next_rip(struct kvm_vcpu *vcpu, int add)
>>> {
>>>       if (svm->vmcb->control.next_rip != 0)
>> In fact, that if should probably be:
>>        if (svm_has(SVM_FEATURE_NRIP))
> This is not sufficient. The next RIP is only provided for some intercepts 
> (namely instruction intercepts), so one would need to check the validity of 
> this field anyway. By definition reserved VMCB fields are 0, and as 0 is 
> never a valid _next_ RIP, this is a quick and correct check.

It's not? If you're at -1 which is hlt in our imaginary case. What would the 
next instruction be?

> 
> Regards,
> Andre.
> 
> P.S. I don't have a strong opinion about your proposed refactoring, if Avi 
> agrees I will rework it. I only found the current fix small and easy, and the 
> mentioned patch for older CPUs removed the add line anyway, so the concerns 
> you rose did not apply to the original version of the patch.

What patch for older CPUs? The one that'd be expensive? I was more concerned 
about readability here - it's great to be able to follow code on what it does 
:-).


Alex

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

Reply via email to