From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chen, Tiejun" Subject: Re: [RFC][PATCH 1/2] kvm: x86: mmu: return zero if s > e in rsvd_bits() Date: Mon, 17 Nov 2014 17:27:36 +0800 Message-ID: <5469BF88.8060005@intel.com> References: <1415957488-27490-1-git-send-email-tiejun.chen@intel.com> <5465D42C.6080900@redhat.com> <546950A6.7050603@intel.com> <5469BE50.80502@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Paolo Bonzini Return-path: Received: from mga02.intel.com ([134.134.136.20]:9848 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751313AbaKQJ1i (ORCPT ); Mon, 17 Nov 2014 04:27:38 -0500 In-Reply-To: <5469BE50.80502@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 2014/11/17 17:22, Paolo Bonzini wrote: > > > 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 >>>> --- >>>> 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, You're right since I'm seeing "()" wrongly. Sorry to bother you. Thanks Tiejun