On 5/25/23 14:05, Andrew Cooper wrote: > On 25/05/2023 6:51 pm, Stewart Hildebrand wrote: >> diff --git a/xen/arch/arm/include/asm/setup.h >> b/xen/arch/arm/include/asm/setup.h >> index 38e2ce255fcf..af53e58a6a07 100644 >> --- a/xen/arch/arm/include/asm/setup.h >> +++ b/xen/arch/arm/include/asm/setup.h >> @@ -168,13 +168,13 @@ u32 device_tree_get_u32(const void *fdt, int node, >> int map_range_to_domain(const struct dt_device_node *dev, >> u64 addr, u64 len, void *data); >> >> -extern DEFINE_BOOT_PAGE_TABLE(boot_pgtable); >> +EXTERN_DEFINE_BOOT_PAGE_TABLE(boot_pgtable); > > The problem is using DEFINE_$blah() when you mean DECLARE_$blah(). > They're split everywhere else in Xen for good reason. > > But the macro looks like pure obfuscation to start with. It should just > be a simple > > extern lpae_t boot_pgtable[XEN_PT_LPAE_ENTRIES]; > > The declaration shouldn't have an alignment or section attribute on, and > deleting the macro makes the header easier to read.
This indeed makes much more sense. I will send v2 with simplified extern declarations. To clarify, the definitions in xen/arch/arm/mm.c are to remain unchanged.