On Thu, 11 Sep 2025 10:22:56 +0200 Janosch Frank <frankja@xxxxxxxxxxxxx> wrote: > On 9/10/25 8:07 PM, Claudio Imbrenda wrote: > > Add page table management functions to be used for KVM guest (gmap) > > page tables. > > > > This patch adds the boilerplate and functions for the allocation and > > deallocation of DAT tables. > > > > Signed-off-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > > > +void dat_free_level(struct crst_table *table, bool owns_ptes); > > +struct page_table *dat_alloc_pt(unsigned long pte_bits, unsigned long pgste_bits); > > +struct crst_table *dat_alloc_crst(unsigned long init); > > + > > static inline struct crst_table *crste_table_start(union crste *crstep) > > { > > return (struct crst_table *)ALIGN_DOWN((unsigned long)crstep, _CRST_TABLE_SIZE); > > diff --git a/arch/s390/mm/page-states.c b/arch/s390/mm/page-states.c > > index 01f9b39e65f5..5bee173db72e 100644 > > --- a/arch/s390/mm/page-states.c > > +++ b/arch/s390/mm/page-states.c > > @@ -13,6 +13,7 @@ > > #include <asm/page.h> > > > > int __bootdata_preserved(cmma_flag); > > +EXPORT_SYMBOL(cmma_flag); > > Why does this need to be exported? > because page-states.h uses it, and we include page-states.h in dat.c