All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Sean Christopherson <seanjc@google.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] KVM: x86/mmu: Use boolean returns for (S)PTE accessors
Date: Mon, 25 Jan 2021 18:24:01 +0100	[thread overview]
Message-ID: <723c5a63-1847-a377-e62e-806b06b0bf17@redhat.com> (raw)
In-Reply-To: <20210123003003.3137525-1-seanjc@google.com>

On 23/01/21 01:30, Sean Christopherson wrote:
> Return a 'bool' instead of an 'int' for various PTE accessors that are
> boolean in nature, e.g. is_shadow_present_pte().  Returning an int is
> goofy and potentially dangerous, e.g. if a flag being checked is moved
> into the upper 32 bits of a SPTE, then the compiler may silently squash
> the entire check since casting to an int is guaranteed to yield a
> return value of '0'.
> 
> Opportunistically refactor is_last_spte() so that it naturally returns
> a bool value instead of letting it implicitly cast 0/1 to false/true.
> 
> No functional change intended.
> 
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
>   arch/x86/kvm/mmu.h      |  2 +-
>   arch/x86/kvm/mmu/spte.h | 12 ++++--------
>   2 files changed, 5 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h
> index 581925e476d6..f61e18dad2f3 100644
> --- a/arch/x86/kvm/mmu.h
> +++ b/arch/x86/kvm/mmu.h
> @@ -145,7 +145,7 @@ static inline int kvm_mmu_do_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
>    *
>    * TODO: introduce APIs to split these two cases.
>    */
> -static inline int is_writable_pte(unsigned long pte)
> +static inline bool is_writable_pte(unsigned long pte)
>   {
>   	return pte & PT_WRITABLE_MASK;
>   }
> diff --git a/arch/x86/kvm/mmu/spte.h b/arch/x86/kvm/mmu/spte.h
> index 2b3a30bd38b0..398fd1bb13a7 100644
> --- a/arch/x86/kvm/mmu/spte.h
> +++ b/arch/x86/kvm/mmu/spte.h
> @@ -185,23 +185,19 @@ static inline bool is_access_track_spte(u64 spte)
>   	return !spte_ad_enabled(spte) && (spte & shadow_acc_track_mask) == 0;
>   }
>   
> -static inline int is_shadow_present_pte(u64 pte)
> +static inline bool is_shadow_present_pte(u64 pte)
>   {
>   	return (pte != 0) && !is_mmio_spte(pte);
>   }
>   
> -static inline int is_large_pte(u64 pte)
> +static inline bool is_large_pte(u64 pte)
>   {
>   	return pte & PT_PAGE_SIZE_MASK;
>   }
>   
> -static inline int is_last_spte(u64 pte, int level)
> +static inline bool is_last_spte(u64 pte, int level)
>   {
> -	if (level == PG_LEVEL_4K)
> -		return 1;
> -	if (is_large_pte(pte))
> -		return 1;
> -	return 0;
> +	return (level == PG_LEVEL_4K) || is_large_pte(pte);
>   }
>   
>   static inline bool is_executable_pte(u64 spte)
> 

Queued, thanks.

Paolo


      reply	other threads:[~2021-01-25 17:26 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-23  0:30 [PATCH] KVM: x86/mmu: Use boolean returns for (S)PTE accessors Sean Christopherson
2021-01-25 17:24 ` Paolo Bonzini [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=723c5a63-1847-a377-e62e-806b06b0bf17@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=jmattson@google.com \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=seanjc@google.com \
    --cc=vkuznets@redhat.com \
    --cc=wanpengli@tencent.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.