2022-03-03 16:45:36

by Sean Christopherson

[permalink] [raw]
Subject: Re: [PATCH] KVM: SVM: Fix missing kvm_cache_regs.h include in svm.h

On Thu, Mar 03, 2022, Peter Gonda wrote:
> Adds include for is_guest_mode() in svm.h.

Write changelogs as "commands", not descriptions. And a little extra verbosity
wouldn't hurt, e.g.

Include kvm_cache_regs.h to pick up the definition of is_guest_mode(),
which is referenced by nested_svm_virtualize_tpr().

Though you'll probably need a different changelog (see below).

> Just compile tested.

This belongs in the ignored part, not the changelog proper.

> Fixes: 883b0a91f41ab ("KVM: SVM: Move Nested SVM Implementation to nested.c")
> Signed-off-by: Peter Gonda <[email protected]>
> Cc: Paolo Bonzini <[email protected]>
> Cc: Sean Christopherson <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> ---
> arch/x86/kvm/svm/svm.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h
> index e45b5645d5e0..396d60e36b82 100644
> --- a/arch/x86/kvm/svm/svm.h
> +++ b/arch/x86/kvm/svm/svm.h
> @@ -22,6 +22,8 @@
> #include <asm/svm.h>
> #include <asm/sev-common.h>
>
> +#include "kvm_cache_regs.h"

Ha, we've already got a lovely workaround for exactly this problem. This patch
should drop the include from svm_onhyperv.c, there's nothing in that file that
needs kvm_cache_regs.h (I verified by deleting use of is_guest_mode()), it's
included purely because of this bug in svm.h.

diff --git a/arch/x86/kvm/svm/svm_onhyperv.c b/arch/x86/kvm/svm/svm_onhyperv.c
index 98aa981c04ec..8cdc62c74a96 100644
--- a/arch/x86/kvm/svm/svm_onhyperv.c
+++ b/arch/x86/kvm/svm/svm_onhyperv.c
@@ -4,7 +4,6 @@
*/

#include <linux/kvm_host.h>
-#include "kvm_cache_regs.h"

#include <asm/mshyperv.h>



2022-03-03 19:08:29

by Peter Gonda

[permalink] [raw]
Subject: Re: [PATCH] KVM: SVM: Fix missing kvm_cache_regs.h include in svm.h

On Thu, Mar 3, 2022 at 9:26 AM Sean Christopherson <[email protected]> wrote:
>
> On Thu, Mar 03, 2022, Peter Gonda wrote:
> > Adds include for is_guest_mode() in svm.h.
>
> Write changelogs as "commands", not descriptions. And a little extra verbosity
> wouldn't hurt, e.g.
>
> Include kvm_cache_regs.h to pick up the definition of is_guest_mode(),
> which is referenced by nested_svm_virtualize_tpr().
>
> Though you'll probably need a different changelog (see below).

Thanks Will do.

>
> > Just compile tested.
>
> This belongs in the ignored part, not the changelog proper.

Ack.

>
> > Fixes: 883b0a91f41ab ("KVM: SVM: Move Nested SVM Implementation to nested.c")
> > Signed-off-by: Peter Gonda <[email protected]>
> > Cc: Paolo Bonzini <[email protected]>
> > Cc: Sean Christopherson <[email protected]>
> > Cc: [email protected]
> > Cc: [email protected]
> > ---
> > arch/x86/kvm/svm/svm.h | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h
> > index e45b5645d5e0..396d60e36b82 100644
> > --- a/arch/x86/kvm/svm/svm.h
> > +++ b/arch/x86/kvm/svm/svm.h
> > @@ -22,6 +22,8 @@
> > #include <asm/svm.h>
> > #include <asm/sev-common.h>
> >
> > +#include "kvm_cache_regs.h"
>
> Ha, we've already got a lovely workaround for exactly this problem. This patch
> should drop the include from svm_onhyperv.c, there's nothing in that file that
> needs kvm_cache_regs.h (I verified by deleting use of is_guest_mode()), it's
> included purely because of this bug in svm.h.

Ah good catch. I assume I should add kvm_cache_regs.h to
arch/x86/kvm/svm/nested.c too since it uses is_guest_mode().

>
> diff --git a/arch/x86/kvm/svm/svm_onhyperv.c b/arch/x86/kvm/svm/svm_onhyperv.c
> index 98aa981c04ec..8cdc62c74a96 100644
> --- a/arch/x86/kvm/svm/svm_onhyperv.c
> +++ b/arch/x86/kvm/svm/svm_onhyperv.c
> @@ -4,7 +4,6 @@
> */
>
> #include <linux/kvm_host.h>
> -#include "kvm_cache_regs.h"
>
> #include <asm/mshyperv.h>
>
>

2022-03-03 22:59:03

by Sean Christopherson

[permalink] [raw]
Subject: Re: [PATCH] KVM: SVM: Fix missing kvm_cache_regs.h include in svm.h

On Thu, Mar 03, 2022, Peter Gonda wrote:
> On Thu, Mar 3, 2022 at 9:26 AM Sean Christopherson <[email protected]> wrote:
> > Ha, we've already got a lovely workaround for exactly this problem. This patch
> > should drop the include from svm_onhyperv.c, there's nothing in that file that
> > needs kvm_cache_regs.h (I verified by deleting use of is_guest_mode()), it's
> > included purely because of this bug in svm.h.
>
> Ah good catch. I assume I should add kvm_cache_regs.h to
> arch/x86/kvm/svm/nested.c too since it uses is_guest_mode().

Nah, picking it up from svm.h (and several other headers) is ok. If we required
every compilation unit to _directly_ include every header, we'd probably double
the size of the kernel source :-)