On Tue, Sep 08, 2020 at 08:09:50PM +1000, Stephen Rothwell wrote: > Hi all, > > After merging the akpm-current tree, today's linux-next build (x86_64 > allmodconfig) failed like this: > > drivers/xen/unpopulated-alloc.c: In function 'fill_list': > drivers/xen/unpopulated-alloc.c:30:9: error: 'struct dev_pagemap' has no member named 'res'; did you mean 'ref'? > 30 | pgmap->res.name = "Xen scratch"; > | ^~~ > | ref > drivers/xen/unpopulated-alloc.c:31:9: error: 'struct dev_pagemap' has no member named 'res'; did you mean 'ref'? > 31 | pgmap->res.flags = IORESOURCE_MEM | IORESOURCE_BUSY; > | ^~~ > | ref > drivers/xen/unpopulated-alloc.c:33:51: error: 'struct dev_pagemap' has no member named 'res'; did you mean 'ref'? > 33 | ret = allocate_resource(&iomem_resource, &pgmap->res, > | ^~~ > | ref > In file included from include/asm-generic/memory_model.h:5, > from arch/x86/include/asm/page.h:76, > from arch/x86/include/asm/thread_info.h:12, > from include/linux/thread_info.h:38, > from arch/x86/include/asm/preempt.h:7, > from include/linux/preempt.h:78, > from include/linux/spinlock.h:51, > from include/linux/mmzone.h:8, > from include/linux/gfp.h:6, > from drivers/xen/unpopulated-alloc.c:3: > drivers/xen/unpopulated-alloc.c:53:35: error: 'struct dev_pagemap' has no member named 'res'; did you mean 'ref'? > 53 | xen_pfn_t pfn = PFN_DOWN(pgmap->res.start); > | ^~~ > include/linux/pfn.h:20:23: note: in definition of macro 'PFN_DOWN' > 20 | #define PFN_DOWN(x) ((x) >> PAGE_SHIFT) > | ^ > drivers/xen/unpopulated-alloc.c:58:30: error: 'struct dev_pagemap' has no member named 'res'; did you mean 'ref'? > 58 | release_resource(&pgmap->res); > | ^~~ > | ref > drivers/xen/unpopulated-alloc.c:69:28: error: 'struct dev_pagemap' has no member named 'res'; did you mean 'ref'? > 69 | release_resource(&pgmap->res); > | ^~~ > | ref > fs/fuse/virtio_fs.c: In function 'virtio_fs_setup_dax': > fs/fuse/virtio_fs.c:838:9: error: 'struct dev_pagemap' has no member named 'res'; did you mean 'ref'? > 838 | pgmap->res = (struct resource){ > | ^~~ > | ref > > Caused by commit > > b3e022c5a68c ("mm/memremap_pages: convert to 'struct range'") > > interacting with commit > > 9e2369c06c8a ("xen: add helpers to allocate unpopulated memory") > > from Linus' tree (in v5.9-rc4) and commit > > 7e833303db20 ("virtiofs: set up virtio_fs dax_device") > > from the fuse tree. > > I have added the following patch which may require more work but at > least makes it all build. > > From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > Date: Tue, 8 Sep 2020 20:00:20 +1000 > Subject: [PATCH] merge fix up for "mm/memremap_pages: convert to 'struct > range'" > > Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Thanks, LGTM. > --- > drivers/xen/unpopulated-alloc.c | 15 +++++++++------ > fs/fuse/virtio_fs.c | 3 +-- > 2 files changed, 10 insertions(+), 8 deletions(-) > > diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c > index 3b98dc921426..9fa7ce330628 100644 > --- a/drivers/xen/unpopulated-alloc.c > +++ b/drivers/xen/unpopulated-alloc.c > @@ -18,6 +18,7 @@ static unsigned int list_count; > static int fill_list(unsigned int nr_pages) > { > struct dev_pagemap *pgmap; > + struct resource res; > void *vaddr; > unsigned int i, alloc_pages = round_up(nr_pages, PAGES_PER_SECTION); > int ret; > @@ -27,10 +28,10 @@ static int fill_list(unsigned int nr_pages) > return -ENOMEM; > > pgmap->type = MEMORY_DEVICE_GENERIC; > - pgmap->res.name = "Xen scratch"; > - pgmap->res.flags = IORESOURCE_MEM | IORESOURCE_BUSY; > + res.name = "Xen scratch"; > + res.flags = IORESOURCE_MEM | IORESOURCE_BUSY; You could init the fields at res definition time now, since it's no longer dynamically allocated. Roger.