diff mbox series

xen/arm: livepatch: Include xen/mm.h rather than asm/mm.h

Message ID 20210115192947.6499-1-julien@xen.org (mailing list archive)
State New, archived
Headers show
Series xen/arm: livepatch: Include xen/mm.h rather than asm/mm.h | expand

Commit Message

Julien Grall Jan. 15, 2021, 7:29 p.m. UTC
From: Julien Grall <jgrall@amazon.com>

Livepatch fails to build on Arm after commit ced9795c6cb4 "mm: split
out mfn_t / gfn_t / pfn_t definitions and helpers":

In file included from livepatch.c:13:0:
/oss/xen/xen/include/asm/mm.h:32:28: error: field ‘list’ has incomplete type
     struct page_list_entry list;
                            ^~~~
/oss/xen/xen/include/asm/mm.h:53:43: error: ‘MAX_ORDER’ undeclared here (not in a function); did you mean ‘PFN_ORDER’?
                 unsigned long first_dirty:MAX_ORDER + 1;
                                           ^~~~~~~~~
                                           PFN_ORDER
/oss/xen/xen/include/asm/mm.h:53:31: error: bit-field ‘first_dirty’ width not an integer constant
                 unsigned long first_dirty:MAX_ORDER + 1;
                               ^~~~~~~~~~~

This is happening because asm/mm.h is included directly by livepatch.c.
Yet it depends on xen/mm.h to be included first so MAX_ORDER is defined.

Resolve the build failure by including xen/mm.h rather than asm/mm.h.

Fixes: ced9795c6cb4 ("mm: split out mfn_t / gfn_t / pfn_t definitions and helpers")
Signed-off-by: Julien Grall <jgrall@amazon.com>
---
 xen/arch/arm/livepatch.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Konrad Rzeszutek Wilk Jan. 15, 2021, 7:57 p.m. UTC | #1
On Fri, Jan 15, 2021 at 07:29:47PM +0000, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
> 
> Livepatch fails to build on Arm after commit ced9795c6cb4 "mm: split
> out mfn_t / gfn_t / pfn_t definitions and helpers":
> 
> In file included from livepatch.c:13:0:
> /oss/xen/xen/include/asm/mm.h:32:28: error: field ‘list’ has incomplete type
>      struct page_list_entry list;
>                             ^~~~
> /oss/xen/xen/include/asm/mm.h:53:43: error: ‘MAX_ORDER’ undeclared here (not in a function); did you mean ‘PFN_ORDER’?
>                  unsigned long first_dirty:MAX_ORDER + 1;
>                                            ^~~~~~~~~
>                                            PFN_ORDER
> /oss/xen/xen/include/asm/mm.h:53:31: error: bit-field ‘first_dirty’ width not an integer constant
>                  unsigned long first_dirty:MAX_ORDER + 1;
>                                ^~~~~~~~~~~
> 
> This is happening because asm/mm.h is included directly by livepatch.c.
> Yet it depends on xen/mm.h to be included first so MAX_ORDER is defined.
> 
> Resolve the build failure by including xen/mm.h rather than asm/mm.h.
> 
> Fixes: ced9795c6cb4 ("mm: split out mfn_t / gfn_t / pfn_t definitions and helpers")
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

Thank you!
> Signed-off-by: Julien Grall <jgrall@amazon.com>
> ---
>  xen/arch/arm/livepatch.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/livepatch.c b/xen/arch/arm/livepatch.c
> index 915e9d926a11..75e8adcfd6a1 100644
> --- a/xen/arch/arm/livepatch.c
> +++ b/xen/arch/arm/livepatch.c
> @@ -6,11 +6,11 @@
>  #include <xen/lib.h>
>  #include <xen/livepatch_elf.h>
>  #include <xen/livepatch.h>
> +#include <xen/mm.h>
>  #include <xen/vmap.h>
>  
>  #include <asm/cpufeature.h>
>  #include <asm/livepatch.h>
> -#include <asm/mm.h>
>  
>  /* Override macros from asm/page.h to make them work with mfn_t */
>  #undef virt_to_mfn
> -- 
> 2.17.1
>
Stefano Stabellini Jan. 15, 2021, 8:06 p.m. UTC | #2
On Fri, 15 Jan 2021, Konrad Rzeszutek Wilk wrote:
> On Fri, Jan 15, 2021 at 07:29:47PM +0000, Julien Grall wrote:
> > From: Julien Grall <jgrall@amazon.com>
> > 
> > Livepatch fails to build on Arm after commit ced9795c6cb4 "mm: split
> > out mfn_t / gfn_t / pfn_t definitions and helpers":
> > 
> > In file included from livepatch.c:13:0:
> > /oss/xen/xen/include/asm/mm.h:32:28: error: field ‘list’ has incomplete type
> >      struct page_list_entry list;
> >                             ^~~~
> > /oss/xen/xen/include/asm/mm.h:53:43: error: ‘MAX_ORDER’ undeclared here (not in a function); did you mean ‘PFN_ORDER’?
> >                  unsigned long first_dirty:MAX_ORDER + 1;
> >                                            ^~~~~~~~~
> >                                            PFN_ORDER
> > /oss/xen/xen/include/asm/mm.h:53:31: error: bit-field ‘first_dirty’ width not an integer constant
> >                  unsigned long first_dirty:MAX_ORDER + 1;
> >                                ^~~~~~~~~~~
> > 
> > This is happening because asm/mm.h is included directly by livepatch.c.
> > Yet it depends on xen/mm.h to be included first so MAX_ORDER is defined.
> > 
> > Resolve the build failure by including xen/mm.h rather than asm/mm.h.
> > 
> > Fixes: ced9795c6cb4 ("mm: split out mfn_t / gfn_t / pfn_t definitions and helpers")
> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> Thank you!
> > Signed-off-by: Julien Grall <jgrall@amazon.com>
> > ---
> >  xen/arch/arm/livepatch.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/xen/arch/arm/livepatch.c b/xen/arch/arm/livepatch.c
> > index 915e9d926a11..75e8adcfd6a1 100644
> > --- a/xen/arch/arm/livepatch.c
> > +++ b/xen/arch/arm/livepatch.c
> > @@ -6,11 +6,11 @@
> >  #include <xen/lib.h>
> >  #include <xen/livepatch_elf.h>
> >  #include <xen/livepatch.h>
> > +#include <xen/mm.h>
> >  #include <xen/vmap.h>
> >  
> >  #include <asm/cpufeature.h>
> >  #include <asm/livepatch.h>
> > -#include <asm/mm.h>
> >  
> >  /* Override macros from asm/page.h to make them work with mfn_t */
> >  #undef virt_to_mfn
> > -- 
> > 2.17.1
> > 
>
Jan Beulich Jan. 18, 2021, 9:26 a.m. UTC | #3
On 15.01.2021 20:29, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
> 
> Livepatch fails to build on Arm after commit ced9795c6cb4 "mm: split
> out mfn_t / gfn_t / pfn_t definitions and helpers":
> 
> In file included from livepatch.c:13:0:
> /oss/xen/xen/include/asm/mm.h:32:28: error: field ‘list’ has incomplete type
>      struct page_list_entry list;
>                             ^~~~
> /oss/xen/xen/include/asm/mm.h:53:43: error: ‘MAX_ORDER’ undeclared here (not in a function); did you mean ‘PFN_ORDER’?
>                  unsigned long first_dirty:MAX_ORDER + 1;
>                                            ^~~~~~~~~
>                                            PFN_ORDER
> /oss/xen/xen/include/asm/mm.h:53:31: error: bit-field ‘first_dirty’ width not an integer constant
>                  unsigned long first_dirty:MAX_ORDER + 1;
>                                ^~~~~~~~~~~
> 
> This is happening because asm/mm.h is included directly by livepatch.c.
> Yet it depends on xen/mm.h to be included first so MAX_ORDER is defined.
> 
> Resolve the build failure by including xen/mm.h rather than asm/mm.h.
> 
> Fixes: ced9795c6cb4 ("mm: split out mfn_t / gfn_t / pfn_t definitions and helpers")
> Signed-off-by: Julien Grall <jgrall@amazon.com>

Thanks for the quick fix, and I'm sorry for the breakage. I'll
try to make sure I'll also check building with livepatch enabled
down the road.

Jan
diff mbox series

Patch

diff --git a/xen/arch/arm/livepatch.c b/xen/arch/arm/livepatch.c
index 915e9d926a11..75e8adcfd6a1 100644
--- a/xen/arch/arm/livepatch.c
+++ b/xen/arch/arm/livepatch.c
@@ -6,11 +6,11 @@ 
 #include <xen/lib.h>
 #include <xen/livepatch_elf.h>
 #include <xen/livepatch.h>
+#include <xen/mm.h>
 #include <xen/vmap.h>
 
 #include <asm/cpufeature.h>
 #include <asm/livepatch.h>
-#include <asm/mm.h>
 
 /* Override macros from asm/page.h to make them work with mfn_t */
 #undef virt_to_mfn