Re: [patch 1/2] x86,module: Detect VMX modules and disable Split-Lock-Detect

From: kbuild test robot
Date: Fri Apr 03 2020 - 10:44:22 EST


Hi Thomas,

I love your patch! Yet something to improve:

[auto build test ERROR on tip/auto-latest]
[also build test ERROR on next-20200403]
[cannot apply to jeyu/modules-next tip/x86/core v5.6]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Thomas-Gleixner/x86-Prevent-Split-Lock-Detection-wreckage-on-VMX-hypervisors/20200403-171430
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git ee8bac724cc7767dcf9480afb656318994f22c3d
config: x86_64-randconfig-s1-20200403 (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

arch/x86/kernel/module.c: In function 'module_finalize':
>> arch/x86/kernel/module.c:257:17: error: 'struct module' has no member named 'sld_safe'
if (text && !me->sld_safe) {
^~

vim +257 arch/x86/kernel/module.c

220
221 int module_finalize(const Elf_Ehdr *hdr,
222 const Elf_Shdr *sechdrs,
223 struct module *me)
224 {
225 const Elf_Shdr *s, *text = NULL, *alt = NULL, *locks = NULL,
226 *para = NULL, *orc = NULL, *orc_ip = NULL;
227 char *secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
228
229 for (s = sechdrs; s < sechdrs + hdr->e_shnum; s++) {
230 if (!strcmp(".text", secstrings + s->sh_name))
231 text = s;
232 if (!strcmp(".altinstructions", secstrings + s->sh_name))
233 alt = s;
234 if (!strcmp(".smp_locks", secstrings + s->sh_name))
235 locks = s;
236 if (!strcmp(".parainstructions", secstrings + s->sh_name))
237 para = s;
238 if (!strcmp(".orc_unwind", secstrings + s->sh_name))
239 orc = s;
240 if (!strcmp(".orc_unwind_ip", secstrings + s->sh_name))
241 orc_ip = s;
242 }
243
244 if (alt) {
245 /* patch .altinstructions */
246 void *aseg = (void *)alt->sh_addr;
247 apply_alternatives(aseg, aseg + alt->sh_size);
248 }
249 if (locks && text) {
250 void *lseg = (void *)locks->sh_addr;
251 void *tseg = (void *)text->sh_addr;
252 alternatives_smp_module_add(me, me->name,
253 lseg, lseg + locks->sh_size,
254 tseg, tseg + text->sh_size);
255 }
256
> 257 if (text && !me->sld_safe) {
258 void *tseg = (void *)text->sh_addr;
259 split_lock_validate_module_text(me, tseg, tseg + text->sh_size);
260 }
261
262 if (para) {
263 void *pseg = (void *)para->sh_addr;
264 apply_paravirt(pseg, pseg + para->sh_size);
265 }
266
267 /* make jump label nops */
268 jump_label_apply_nops(me);
269
270 if (orc && orc_ip)
271 unwind_module_init(me, (void *)orc_ip->sh_addr, orc_ip->sh_size,
272 (void *)orc->sh_addr, orc->sh_size);
273
274 return 0;
275 }
276

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip