Re: [PATCH 3/4] KVM: MMU: reduce the size of mmu_page_path

From: Paolo Bonzini
Date: Fri Mar 25 2016 - 10:22:49 EST




On 25/03/2016 15:07, Xiao Guangrong wrote:
>>
>> @@ -2037,13 +2037,14 @@ static void mmu_pages_clear_parents(struct
>> mmu_page_path *parents)
>> {
>> struct kvm_mmu_page *sp;
>> unsigned int level = 0;
>> + unsigned int idx;
>>
>> do {
>> - unsigned int idx = parents->idx[level];
>> sp = parents->parent[level];
>> - if (!sp)
>> + if (!sp || WARN_ON(level == PT64_ROOT_LEVEL-1))
>> return;
>>
>> + idx = parents->idx[level];
>> WARN_ON(idx == INVALID_INDEX);
>> clear_unsync_child_bit(sp, idx);
>> level++;
>>
>
> Yes, exactly.
>
> [ actually, we can keep mmu_pages_clear_parents() unchanged ]

You cannot because ubsan would complain. :)

Paolo