From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B4C1ACF8855 for ; Fri, 4 Oct 2024 19:12:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=uewTNo85OuC1CuQAtPw+3juBIXFWzfz9tsrD+x9jd+E=; b=qu+owiig4FhZCdBUbO9Zs8tZr6 2mWpY1sVobDekGppY779mJr3JSMGDb2xlztseQTgFqS9431IDz9tQJ9485mYFlJiRkjPPjiMQw0GH K3Pwpzu63Hcomev9bWCqmkfuuf7If4IRDRAJrFp15WcU7Dr2kinzOcb7z5fZZxUk+8PmU+541o3sJ Geo3LrEC5gAiW+kkwfriwpadzzNHvrIETw5PRy9MtrTJoWBOIqtIHhK9AvxeUO1GC+85u39sug00J 35ijnAL/GgMkeDqDlGZMEeNTemyd7APfbVBg+65YdF7Qe+/4DBGIulS1m5SEOoSvgeqlcPF8rhR4s x9BGuLKg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1swnjA-0000000DqaS-29Xj; Fri, 04 Oct 2024 19:12:36 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1swnhs-0000000DqGr-41tf for linux-arm-kernel@lists.infradead.org; Fri, 04 Oct 2024 19:11:18 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id B516F5C4D70; Fri, 4 Oct 2024 19:11:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 109CEC4CEC6; Fri, 4 Oct 2024 19:11:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1728069074; bh=YYYFR4xM6pq64tyhxGwfZ3sPFhLIXiPYgsZ0dStL10M=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=LYfU5nCF1IhcG9r/BLUlZ83fopNKYX/W4gNeO7INGLlb3hG5q7ZfL/MItsNOF7lvD Z0TfCzp7GYj74VR2pfNgN7Q//fzAy3lRSXTLX/YNyIB2c4P24z0ZJizhfSxu/y8/Bn xtlL5gXdG/ygxQ8t7ZTAswkYupUyG+14LV5wjlxC3QTC+B4Tkat8cU/9fQIjRu407n Y2dIB/ITsG6b2oH0nwxPpgrhcjKCN2rWwK6UkDUe5m6pkwrygKAZJO1vGsl8PPR86D dHzMujwLCbQYn7S/FYdKe9qAowdS8s5p4I9nlpPVoY+oHL3F3dHvy5JJATMDW8qHln fk6pRwV/iNalA== Date: Fri, 4 Oct 2024 20:11:04 +0100 From: Simon Horman To: Nuno Das Neves Cc: linux-hyperv@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, iommu@lists.linux.dev, netdev@vger.kernel.org, linux-pci@vger.kernel.org, linux-arch@vger.kernel.org, virtualization@lists.linux.dev, kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, catalin.marinas@arm.com, will@kernel.org, luto@kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, seanjc@google.com, pbonzini@redhat.com, peterz@infradead.org, daniel.lezcano@linaro.org, joro@8bytes.org, robin.murphy@arm.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, lpieralisi@kernel.org, kw@linux.com, robh@kernel.org, bhelgaas@google.com, arnd@arndb.de, sgarzare@redhat.com, jinankjain@linux.microsoft.com, muminulrussell@gmail.com, skinsburskii@linux.microsoft.com, mukeshrathor@microsoft.com Subject: Re: [PATCH 5/5] hyperv: Use hvhdk.h instead of hyperv-tlfs.h in Hyper-V code Message-ID: <20241004191104.GI1310185@kernel.org> References: <1727985064-18362-1-git-send-email-nunodasneves@linux.microsoft.com> <1727985064-18362-6-git-send-email-nunodasneves@linux.microsoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1727985064-18362-6-git-send-email-nunodasneves@linux.microsoft.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241004_121117_113009_95598F4F X-CRM114-Status: GOOD ( 21.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Oct 03, 2024 at 12:51:04PM -0700, Nuno Das Neves wrote: > To move toward importing headers from Hyper-V directly, switch to > using hvhdk.h in all Hyper-V code. KVM code that uses Hyper-V > definitions from hyperv-tlfs.h remains untouched. > > Add HYPERV_NONTLFS_HEADERS everywhere mshyperv.h, asm/svm.h, > clocksource/hyperv_timer.h is included in Hyper-V code. > > Replace hyperv-tlfs.h with hvhdk.h directly in linux/hyperv.h, and > define HYPERV_NONTLFS_HEADERS there, since it is only used in > Hyper-V device code. > > Update a couple of definitions to updated names found in the new > headers: HV_EXT_MEM_HEAT_HINT, HV_SUBNODE_TYPE_ANY. > > Signed-off-by: Nuno Das Neves ... > diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c > index b1a4de4eee29..62b2a270ae65 100644 > --- a/arch/arm64/hyperv/mshyperv.c > +++ b/arch/arm64/hyperv/mshyperv.c > @@ -15,6 +15,7 @@ > #include > #include > #include > +#define HYPERV_NONTLFS_HEADERS > #include > > static bool hyperv_initialized; Hi, With this change in place I see allmodconfig x86_64 builds reporting that HV_REGISTER_FEATURES is undeclared. arch/arm64/hyperv/mshyperv.c: In function 'hyperv_init': arch/arm64/hyperv/mshyperv.c:53:26: error: 'HV_REGISTER_FEATURES' undeclared (first use in this function); did you mean 'HV_REGISTER_FEATURES_INFO'? 53 | hv_get_vpreg_128(HV_REGISTER_FEATURES, &result); | ^~~~~~~~~~~~~~~~~~~~ | HV_REGISTER_FEATURES_INFO arch/arm64/hyperv/mshyperv.c:53:26: note: each undeclared identifier is reported only once for each function it appears in arch/arm64/hyperv/mshyperv.c:58:26: error: 'HV_REGISTER_ENLIGHTENMENTS' undeclared (first use in this function); did you mean 'HV_ACCESS_REENLIGHTENMENT'? 58 | hv_get_vpreg_128(HV_REGISTER_ENLIGHTENMENTS, &result); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | HV_ACCESS_REENLIGHTENMENT > diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c > index 6d83ceb7f1ba..5f4053c49658 100644 > --- a/arch/x86/entry/vdso/vma.c > +++ b/arch/x86/entry/vdso/vma.c > @@ -25,6 +25,7 @@ > #include > #include > #include > +#define HYPERV_NONTLFS_HEADERS > #include > > #undef _ASM_X86_VVAR_H > diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c > index f022d5f64fb6..4fe3b3b13256 100644 > --- a/arch/x86/hyperv/hv_apic.c > +++ b/arch/x86/hyperv/hv_apic.c > @@ -26,6 +26,7 @@ > #include > #include > #include > +#define HYPERV_NONTLFS_HEADERS > #include > #include > > diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c > index fc3c3d76c181..680c4abc456e 100644 > --- a/arch/x86/hyperv/hv_init.c > +++ b/arch/x86/hyperv/hv_init.c > @@ -19,6 +19,7 @@ > #include > #include > #include > +#define HYPERV_NONTLFS_HEADERS > #include > #include > #include And here too, with x86_64 allmodconfig. In file included from ./include/linux/string.h:390, from ./include/linux/efi.h:16, from arch/x86/hyperv/hv_init.c:12: arch/x86/hyperv/hv_init.c: In function 'get_vtl': ./include/linux/overflow.h:372:23: error: invalid application of 'sizeof' to incomplete type 'struct hv_get_vp_registers_input' 372 | sizeof(*(p)) + flex_array_size(p, member, count), \ | ^ ./include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk' 502 | size_t __fortify_size = (size_t)(size); \ | ^~~~ arch/x86/hyperv/hv_init.c:427:9: note: in expansion of macro 'memset' 427 | memset(input, 0, struct_size(input, element, 1)); | ^~~~~~ arch/x86/hyperv/hv_init.c:427:26: note: in expansion of macro 'struct_size' 427 | memset(input, 0, struct_size(input, element, 1)); | ^~~~~~~~~~~ [errors trimmed for the sake of brevity] ... > diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c > index 04775346369c..a8bb6ad7efb6 100644 > --- a/arch/x86/hyperv/hv_vtl.c > +++ b/arch/x86/hyperv/hv_vtl.c > @@ -10,6 +10,7 @@ > #include > #include > #include > +#define HYPERV_NONTLFS_HEADERS > #include > #include > #include <../kernel/smpboot.h> And, likewise, with this patch applied I see a number of errors when compiling this file. This is with allmodconfig on x86_64 with: Modified: CONFIG_HYPERV=y (instead of m) Added: CONFIG_HYPERV_VTL_MODE=y arch/x86/hyperv/hv_vtl.c: In function 'hv_vtl_bringup_vcpu': arch/x86/hyperv/hv_vtl.c:154:34: error: 'HVCALL_ENABLE_VP_VTL' undeclared (first use in this function) 154 | status = hv_do_hypercall(HVCALL_ENABLE_VP_VTL, input, NULL); | ^~~~~~~~~~~~~~~~~~~~ arch/x86/hyperv/hv_vtl.c:154:34: note: each undeclared identifier is reported only once for each function it appears in In file included from ./include/linux/string.h:390, from ./include/linux/bitmap.h:13, from ./include/linux/cpumask.h:12, from ./arch/x86/include/asm/apic.h:5, from arch/x86/hyperv/hv_vtl.c:9: arch/x86/hyperv/hv_vtl.c: In function 'hv_vtl_apicid_to_vp_id': arch/x86/hyperv/hv_vtl.c:189:32: error: invalid application of 'sizeof' to incomplete type 'struct hv_get_vp_from_apic_id_in' 189 | memset(input, 0, sizeof(*input)); | ^ ./include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk' 502 | size_t __fortify_size = (size_t)(size); \ | ^~~~ arch/x86/hyperv/hv_vtl.c:189:9: note: in expansion of macro 'memset' 189 | memset(input, 0, sizeof(*input)); | ^~~~~~ arch/x86/hyperv/hv_vtl.c:190:14: error: invalid use of undefined type 'struct hv_get_vp_from_apic_id_in' 190 | input->partition_id = HV_PARTITION_ID_SELF; | ^~ arch/x86/hyperv/hv_vtl.c:191:14: error: invalid use of undefined type 'struct hv_get_vp_from_apic_id_in' 191 | input->apic_ids[0] = apic_id; | ^~ arch/x86/hyperv/hv_vtl.c:195:45: error: 'HVCALL_GET_VP_ID_FROM_APIC_ID' undeclared (first use in this function) 195 | control = HV_HYPERCALL_REP_COMP_1 | HVCALL_GET_VP_ID_FROM_APIC_ID; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...