tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 70ffcfd5ec3049df518d1359b0189b4dd16e0e56 commit: 380709c322aaa306b5ac3c278a0700043f7d33e2 [3135/3135] gmem: prepare config, boot parameter, vma flag and basic GMEM related structs config: arm64-randconfig-003-20251112 (https://download.01.org/0day-ci/archive/20251112/202511120955.BR23qSft-lkp@i...) compiler: aarch64-linux-gcc (GCC) 7.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251112/202511120955.BR23qSft-lkp@i...) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202511120955.BR23qSft-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from include/linux/gmem.h:15:0, from mm/gmem.c:10: mm/gmem.c: In function 'gm_as_attach':
mm/gmem.c:190:26: error: 'struct task_struct' has no member named 'mems_allowed'; did you mean 'nr_cpus_allowed'? node_set(nid, current->mems_allowed); ^ include/linux/nodemask.h:128:50: note: in definition of macro 'node_set' #define node_set(node, dst) __node_set((node), &(dst)) ^~~
vim +190 mm/gmem.c 144 145 int gm_as_attach(struct gm_as *as, struct gm_dev *dev, 146 bool activate, struct gm_context **out_ctx) 147 { 148 struct gm_context *ctx; 149 int nid; 150 151 ctx = kmem_cache_alloc(gm_ctx_cache, GFP_KERNEL); 152 if (!ctx) 153 return -ENOMEM; 154 155 ctx->as = as; 156 ctx->dev = dev; 157 158 INIT_LIST_HEAD(&ctx->gm_dev_link); 159 INIT_LIST_HEAD(&ctx->gm_as_link); 160 161 if (!list_empty(&as->gm_ctx_list)) { 162 struct list_head *old_node; 163 struct gm_context *old_ctx; 164 165 old_node = as->gm_ctx_list.prev; 166 list_del_init(old_node); 167 old_ctx = list_entry(old_node, struct gm_context, gm_as_link); 168 kfree(old_ctx); 169 } 170 171 list_add_tail(&dev->gm_ctx_list, &ctx->gm_dev_link); 172 list_add_tail(&ctx->gm_as_link, &as->gm_ctx_list); 173 174 if (activate) { 175 /* 176 * Here we should really have a callback function to perform the context switch 177 * for the hardware. E.g. in x86 this function is effectively 178 * flushing the CR3 value. Currently we do not care time-sliced context switch, 179 * unless someone wants to support it. 180 */ 181 dev->current_ctx = ctx; 182 } 183 *out_ctx = ctx; 184 185 /* 186 * gm_as_attach will be used to attach device to process address space. 187 * Handle this case and add hnodes registered by device to process mems_allowed. 188 */ 189 for_each_node_mask(nid, dev->registered_hnodes)
190 node_set(nid, current->mems_allowed);
-- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki