Re: linux-next: build failure after merge of the kvm-fixes tree

From: Wanpeng Li
Date: Thu May 27 2021 - 00:57:14 EST


On Thu, 27 May 2021 at 10:50, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Hi all,
>
> After merging the kvm-fixes tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
>
> In file included from arch/powerpc/include/asm/kvm_ppc.h:19,
> from arch/powerpc/include/asm/dbell.h:17,
> from arch/powerpc/kernel/asm-offsets.c:38:
> include/linux/kvm_host.h: In function 'kvm_vcpu_can_poll':
> include/linux/kvm_host.h:270:9: error: implicit declaration of function 'single_task_running' [-Werror=implicit-function-declaration]
> 270 | return single_task_running() && !need_resched() && ktime_before(cur, stop);
> | ^~~~~~~~~~~~~~~~~~~
>
> Caused by commit
>
> 85d4c3baeb45 ("KVM: PPC: exit halt polling on need_resched()")
>
> I have used the kvm-fixes tree from next-20210524 again today.

The kvm/master is broken by several patches.

diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
index 0f6f394..e851671 100644
--- a/arch/x86/kvm/hyperv.c
+++ b/arch/x86/kvm/hyperv.c
@@ -1659,7 +1659,7 @@ struct kvm_hv_hcall {

static u64 kvm_hv_flush_tlb(struct kvm_vcpu *vcpu, struct
kvm_hv_hcall *hc, bool ex)
{
- int i, j;
+ int i;
gpa_t gpa;
struct kvm *kvm = vcpu->kvm;
struct kvm_vcpu_hv *hv_vcpu = to_hv_vcpu(vcpu);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 9d095bed..feb9611 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3604,7 +3604,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu,
struct msr_data *msr_info)
* to ensure backwards-compatible behavior for migration.
*/
if (msr_info->host_initiated &&
- kvm_check_has_quirk(vcpu->kvm, KVM_X86_QUIRK_TSC_HOST_ACCESS))
+ kvm_check_has_quirk(vcpu->kvm, KVM_X86_QUIRK_TSC_HOST_ACCESS)) {
offset = vcpu->arch.l1_tsc_offset;
ratio = vcpu->arch.l1_tsc_scaling_ratio;
} else {
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 18905c9..4273e04 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -10,6 +10,7 @@
#include <linux/spinlock.h>
#include <linux/signal.h>
#include <linux/sched.h>
+#include <linux/sched/stat.h>
#include <linux/bug.h>
#include <linux/minmax.h>
#include <linux/mm.h>