On 09/18/2012 09:53 AM, Xiao Guangrong wrote:
> On 09/16/2012 08:07 PM, Avi Kivity wrote:
> 
>> 
>> -    pt_access = ACC_ALL;
>> +    pt_access = pte_access = ACC_ALL;
>> +    ++walker->level;
>> 
>> -    for (;;) {
>> +    do {
>>              gfn_t real_gfn;
>>              unsigned long host_addr;
>> 
>> +            pt_access &= pte_access;
>> +            --walker->level;
> 
> Any reason increase walker->level before the loop and decrease here?
> Can not use the origin style? :)

The original code had

      if (last_gpte) {
         ...
         break;
      }
      --walker->level
   }

Since my change moves the check to the last '}', it would include an
extra decrement of walker->level.

> 
>> +    gfn = gpte_to_gfn_lvl(pte, walker->level);
>> +    gfn += (addr & PT_LVL_OFFSET_MASK(walker->level)) >> PAGE_SHIFT;
>> +
>> +    if (PTTYPE == 32 && walker->level == PT_DIRECTORY_LEVEL && 
>> is_cpuid_PSE36())
>> +            gfn += pse36_gfn_delta(pte);
>> +
>> +    ac = write_fault | fetch_fault | user_fault;
> 
> Can use 'access' instead.
> 

'access' also has other bits set, need to check if we need to mask them
off.  Will add a separate patch for this.

-- 
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to