OSDN Git Service

KVM: x86: Use boolean return value for is_{pae,pse,paging}()
authorBinbin Wu <binbin.wu@linux.intel.com>
Wed, 22 Mar 2023 04:58:22 +0000 (12:58 +0800)
committerSean Christopherson <seanjc@google.com>
Wed, 22 Mar 2023 17:18:11 +0000 (10:18 -0700)
commitbede6eb4db19424477c36dace426ae12255f4a0d
treeac2e27614a571387bcbfb7a68e0bd636119fd7d3
parent607475cfa0f753862c0030de836875fe4ac5cf8a
KVM: x86: Use boolean return value for is_{pae,pse,paging}()

Convert is_{pae,pse,paging}() to use kvm_is_cr{0,4}_bit_set() and return
bools.  Returning an "int" requires not one, but two implicit casts, first
from "unsigned long" to "int", and then again to a "bool".  Both casts are
more than a bit dangerous; the ulong=>int casts would drop a bit on 64-bit
kernels _if_ the bits in question weren't in the lower 32 bits, and the
int=>bool cast can result in false negatives/positives, e.g. see commit
0c928ff26bd6 ("KVM: SVM: Fix benign "bool vs. int" comparison in
svm_set_cr0()").

Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Binbin Wu <binbin.wu@linux.intel.com>
Link: https://lore.kernel.org/r/20230322045824.22970-3-binbin.wu@linux.intel.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/svm/svm.c
arch/x86/kvm/x86.h