Re: [RFC][PATCH 1/2] kvm: x86: mmu: return zero if s > e in rsvd_bits()

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

 




On 17/11/2014 02:34, Chen, Tiejun wrote:
> On 2014/11/14 18:06, Paolo Bonzini wrote:
>>
>>
>> On 14/11/2014 10:31, Tiejun Chen wrote:
>>> In some real scenarios 'start' may not be less than 'end' like
>>> maxphyaddr = 52.
>>>
>>> Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxx>
>>> ---
>>>   arch/x86/kvm/mmu.h | 2 ++
>>>   1 file changed, 2 insertions(+)
>>>
>>> diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h
>>> index bde8ee7..0e98b5e 100644
>>> --- a/arch/x86/kvm/mmu.h
>>> +++ b/arch/x86/kvm/mmu.h
>>> @@ -58,6 +58,8 @@
>>>
>>>   static inline u64 rsvd_bits(int s, int e)
>>>   {
>>> +    if (unlikely(s > e))
>>> +        return 0;
>>>       return ((1ULL << (e - s + 1)) - 1) << s;
>>>   }
>>>
>>>
>>
>> s == e + 1 is supported:
>>
>>     (1ULL << (e - (e + 1) + 1)) - 1) << s ==
> 
> (1ULL << (e - (e + 1) + 1)) - 1) << s
>     = (1ULL << (e - e - 1) + 1)) - 1) << s
>     = (1ULL << (-1) + 1)) - 1) << s

no,

        ((1ULL << (-1 + 1)) - 1) << s

>     = (1ULL << (0) - 1) << s

        ((1ULL << (0)) - 1) << s

>     = (1ULL << (- 1) << s

        (1 - 1) << s
        0 << s

Paolo

> 
> Am I missing something?
> 
> Thanks
> Tiejun
> 
>>     (1ULL << 0) << s ==
>>     0
>>
>> Is there any case where s is even bigger?
>>
>> Paolo
>> -- 
>> 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
>>
> -- 
> 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
> 
--
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