Hi Boris, On 8/29/2024 8:24 AM, Borislav Petkov wrote: > On Thu, Aug 01, 2024 at 03:56:37PM -0500, Pavan Kumar Paluri wrote: >> +#include <linux/memblock.h> > > What's the idea of adding some random include here? > > Does this file use memblock? > > I don't think so. > > You need to resolve include visibility by including the headers where you need > them: > Understood, will include *only* those headers that provide me with the facilities as you mentioned. > diff --git a/arch/x86/include/asm/sev-common.h b/arch/x86/include/asm/sev-common.h > index dd302fe49f04..d3e7f97e2a4a 100644 > --- a/arch/x86/include/asm/sev-common.h > +++ b/arch/x86/include/asm/sev-common.h > @@ -8,6 +8,9 @@ > #ifndef __ASM_X86_SEV_COMMON_H > #define __ASM_X86_SEV_COMMON_H > > +#include <asm/cache.h> > +#include <asm/pgtable_types.h> > + > #define GHCB_MSR_INFO_POS 0 > #define GHCB_DATA_LOW 12 > #define GHCB_MSR_INFO_MASK (BIT_ULL(GHCB_DATA_LOW) - 1) > diff --git a/arch/x86/virt/svm/cmdline.c b/arch/x86/virt/svm/cmdline.c > index 507549a9c793..f0a532108f49 100644 > --- a/arch/x86/virt/svm/cmdline.c > +++ b/arch/x86/virt/svm/cmdline.c > @@ -5,11 +5,8 @@ > * Copyright (C) 2023 - 2024 Advanced Micro Devices, Inc. > * > * Author: Michael Roth <michael.roth@xxxxxxx> > - * > */ > > -#include <linux/memblock.h> > - > #include <asm/sev.h> > > struct sev_config sev_cfg; > With the above diff applied, I was observing the following compilation errors relating to string header: arch/x86/virt/svm/cmdline.c: In function ‘init_sev_config’: arch/x86/virt/svm/cmdline.c:20:21: error: implicit declaration of function ‘strsep’ [-Werror=implicit-function-declaration] 20 | while ((s = strsep(&str, ","))) { | ^~~~~~ arch/x86/virt/svm/cmdline.c:20:19: warning: assignment to ‘char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 20 | while ((s = strsep(&str, ","))) { | ^ arch/x86/virt/svm/cmdline.c:21:22: error: implicit declaration of function ‘strcmp’ [-Werror=implicit-function-declaration] 21 | if (!strcmp(s, "debug")) { | ^~~~~~ arch/x86/virt/svm/cmdline.c:13:1: note: include ‘<string.h>’ or provide a declaration of ‘strcmp’ 12 | #include <asm/sev.h> +++ |+#include <string.h> 13 | arch/x86/virt/svm/cmdline.c:26:17: error: implicit declaration of function ‘pr_info’ [-Werror=implicit-function-declaration] 26 | pr_info("SEV command-line option '%s' was not recognized\n", s); | ^~~~~~~ So here's the updated diff (for patch #1) that is compile-tested: diff --git a/arch/x86/include/asm/sev-common.h b/arch/x86/include/asm/sev-common.h index dd302fe49f04..d3e7f97e2a4a 100644 --- a/arch/x86/include/asm/sev-common.h +++ b/arch/x86/include/asm/sev-common.h @@ -8,6 +8,9 @@ #ifndef __ASM_X86_SEV_COMMON_H #define __ASM_X86_SEV_COMMON_H +#include <asm/cache.h> +#include <asm/pgtable_types.h> + #define GHCB_MSR_INFO_POS 0 #define GHCB_DATA_LOW 12 #define GHCB_MSR_INFO_MASK (BIT_ULL(GHCB_DATA_LOW) - 1) diff --git a/arch/x86/virt/svm/cmdline.c b/arch/x86/virt/svm/cmdline.c index 507549a9c793..be3504a601c0 100644 --- a/arch/x86/virt/svm/cmdline.c +++ b/arch/x86/virt/svm/cmdline.c @@ -5,10 +5,9 @@ * Copyright (C) 2023 - 2024 Advanced Micro Devices, Inc. * * Author: Michael Roth <michael.roth@xxxxxxx> - * */ -#include <linux/memblock.h> +#include <linux/string.h> #include <asm/sev.h> And for Patch #2, here's the diff: diff --git a/arch/x86/virt/svm/cmdline.c b/arch/x86/virt/svm/cmdline.c index 9cec2c2fb67c..5880df8027e6 100644 --- a/arch/x86/virt/svm/cmdline.c +++ b/arch/x86/virt/svm/cmdline.c @@ -8,6 +8,7 @@ */ #include <linux/string.h> +#include <asm/cpufeature.h> #include <asm/sev.h> If these changes look good to you, I will send a v2 incorporating the changes. Thanks for the review, Pavan