Re: linux-next: build failure after merge of the akpm tree

From: Andrew Morton
Date: Fri Nov 13 2020 - 20:14:56 EST


On Fri, 13 Nov 2020 18:02:39 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:

> Hi all,
>
> After merging the akpm tree, today's linux-next build (i386 defconfig)
> failed like this:
>
> mm/secretmem.c: In function 'secretmem_memcg_charge':
> mm/secretmem.c:72:4: error: 'struct page' has no member named 'memcg_data'
> 72 | p->memcg_data = page->memcg_data;
> | ^~
> mm/secretmem.c:72:23: error: 'struct page' has no member named 'memcg_data'
> 72 | p->memcg_data = page->memcg_data;
> | ^~
> mm/secretmem.c: In function 'secretmem_memcg_uncharge':
> mm/secretmem.c:86:4: error: 'struct page' has no member named 'memcg_data'
> 86 | p->memcg_data = 0;
> | ^~
>
> ...
>
> --- a/mm/secretmem.c
> +++ b/mm/secretmem.c
> @@ -69,7 +69,9 @@ static int secretmem_memcg_charge(struct page *page, gfp_t gfp, int order)
> for (i = 1; i < nr_pages; i++) {
> struct page *p = page + i;
>
> +#ifdef CONFIG_MEMCG
> p->memcg_data = page->memcg_data;
> +#endif
> }
>
> return 0;

Thanks, that'll work for now.

I guess we're looking at adding a set_page_memcg() (I'd prefer
page_memcg_set()).

But probably these functions shouldn't be compiled at all if
CONFIG_MEMCG=n.