tree:
https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git libnvdimm-pending
head: 17c5211450a8fb964757f9f51cae1dc9f973e5ee
commit: 77479ec669355699fb028eac068c6711416373f0 [20/22] mm/memremap_pages: Support
multiple ranges per invocation
config: i386-tinyconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
git checkout 77479ec669355699fb028eac068c6711416373f0
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: the nvdimm/libnvdimm-pending HEAD 17c5211450a8fb964757f9f51cae1dc9f973e5ee builds
fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
In file included from include/linux/mm.h:28,
from include/linux/kallsyms.h:12,
from include/linux/bpf.h:21,
from include/linux/bpf-cgroup.h:5,
from include/linux/cgroup-defs.h:22,
from include/linux/cgroup.h:28,
from include/linux/memcontrol.h:13,
from include/linux/swap.h:9,
from include/linux/suspend.h:5,
from arch/x86/kernel/asm-offsets.c:13:
> include/linux/memremap.h:123:16: error: flexible array member in
union
123 | struct range ranges[];
| ^~~~~~
make[2]: *** [scripts/Makefile.build:114: arch/x86/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1175: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:185: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +123 include/linux/memremap.h
94
95 /**
96 * struct dev_pagemap - metadata for ZONE_DEVICE mappings
97 * @altmap: pre-allocated/reserved memory for vmemmap allocations
98 * @ref: reference count that pins the devm_memremap_pages() mapping
99 * @internal_ref: internal reference if @ref is not provided by the caller
100 * @done: completion for @internal_ref
101 * @type: memory type: see MEMORY_* in memory_hotplug.h
102 * @flags: PGMAP_* flags to specify defailed behavior
103 * @ops: method table
104 * @owner: an opaque pointer identifying the entity that manages this
105 * instance. Used by various helpers to make sure that no
106 * foreign ZONE_DEVICE memory is accessed.
107 * @nr_range: number of ranges to be mapped
108 * @range: range to be mapped when nr_range == 1
109 * @ranges: array of ranges to be mapped when nr_range > 1
110 */
111 struct dev_pagemap {
112 struct vmem_altmap altmap;
113 struct percpu_ref *ref;
114 struct percpu_ref internal_ref;
115 struct completion done;
116 enum memory_type type;
117 unsigned int flags;
118 const struct dev_pagemap_ops *ops;
119 void *owner;
120 int nr_range;
121 union {
122 struct range range;
123 struct range ranges[];
124 };
125 };
126
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org