On Tue, 28 Jul 2020 05:33:58 -0700 Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote: > On 7/27/20 6:19 PM, Andrew Morton wrote: > > The mm-of-the-moment snapshot 2020-07-27-18-18 has been uploaded to > > > > http://www.ozlabs.org/~akpm/mmotm/ > > > > mmotm-readme.txt says > > > > README for mm-of-the-moment: > > > > http://www.ozlabs.org/~akpm/mmotm/ > > > > This is a snapshot of my -mm patch queue. Uploaded at random hopefully > > more than once a week. > > > > You will need quilt to apply these patches to the latest Linus release (5.x > > or 5.x-rcY). The series file is in broken-out.tar.gz and is duplicated in > > http://ozlabs.org/~akpm/mmotm/series > > > > on x86_64: > > ../mm/page_alloc.c:8355:48: warning: ‘struct compact_control’ declared inside parameter list will not be visible outside of this definition or declaration > static int __alloc_contig_migrate_range(struct compact_control *cc, > ^~~~~~~~~~~~~~~ As is usually the case with your reports, I can't figure out how to reproduce it. I copy then .config, run `make oldconfig' (need to hit enter a zillion times because the .config is whacky) then the build succeeds. What's the secret? Anyway, #ifdef CONFIG_CONTIG_ALLOC ... /* [start, end) must belong to a single zone. */ static int __alloc_contig_migrate_range(struct compact_control *cc, unsigned long start, unsigned long end) and #if defined CONFIG_COMPACTION || defined CONFIG_CMA ... struct compact_control { so we presumably have CONFIG_CONTIG_ALLOC=y CONFIG_COMPACTION=n CONFIG_CMA=n which is indeed what's in your config file. But config CONTIG_ALLOC def_bool (MEMORY_ISOLATION && COMPACTION) || CMA says this is an improper combination. And `make oldconfig' fixes it up. What's happening here?