tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git locking/jump_label head: bc3894f26c7917aca4f820baa8b3273696466b7d commit: 1629d66e8cb113f387ed66623208033c82cdc4b5 [15/39] x86/kprobes: Convert to text-patching.h config: i386-defconfig (attached as .config) compiler: gcc-7 (Debian 7.4.0-13) 7.4.0 reproduce: git checkout 1629d66e8cb113f387ed66623208033c82cdc4b5 # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): arch/x86/kernel/kprobes/core.c: In function 'can_probe': >> arch/x86/kernel/kprobes/core.c:304:31: error: 'INT3_INSN_OPCODED' undeclared (first use in this function); did you mean 'INT3_INSN_OPCODE'? if (insn.opcode.bytes[0] == INT3_INSN_OPCODED) ^~~~~~~~~~~~~~~~~ INT3_INSN_OPCODE arch/x86/kernel/kprobes/core.c:304:31: note: each undeclared identifier is reported only once for each function it appears in arch/x86/kernel/kprobes/core.c: In function 'setup_singlestep': arch/x86/kernel/kprobes/core.c:612:19: error: 'INT3_INSN_OPCODED' undeclared (first use in this function); did you mean 'INT3_INSN_OPCODE'? if (p->opcode == INT3_INSN_OPCODED) ^~~~~~~~~~~~~~~~~ INT3_INSN_OPCODE arch/x86/kernel/kprobes/core.c: In function 'kprobe_int3_handler': arch/x86/kernel/kprobes/core.c:698:22: error: 'INT3_INSN_OPCODED' undeclared (first use in this function); did you mean 'INT3_INSN_OPCODE'? } else if (*addr != INT3_INSN_OPCODED) { ^~~~~~~~~~~~~~~~~ INT3_INSN_OPCODE vim +304 arch/x86/kernel/kprobes/core.c 272 273 /* Check if paddr is at an instruction boundary */ 274 static int can_probe(unsigned long paddr) 275 { 276 unsigned long addr, __addr, offset = 0; 277 struct insn insn; 278 kprobe_opcode_t buf[MAX_INSN_SIZE]; 279 280 if (!kallsyms_lookup_size_offset(paddr, NULL, &offset)) 281 return 0; 282 283 /* Decode instructions */ 284 addr = paddr - offset; 285 while (addr < paddr) { 286 /* 287 * Check if the instruction has been modified by another 288 * kprobe, in which case we replace the breakpoint by the 289 * original instruction in our buffer. 290 * Also, jump optimization will change the breakpoint to 291 * relative-jump. Since the relative-jump itself is 292 * normally used, we just go through if there is no kprobe. 293 */ 294 __addr = recover_probed_instruction(buf, addr); 295 if (!__addr) 296 return 0; 297 kernel_insn_init(&insn, (void *)__addr, MAX_INSN_SIZE); 298 insn_get_length(&insn); 299 300 /* 301 * Another debugging subsystem might insert this breakpoint. 302 * In that case, we can't recover it. 303 */ > 304 if (insn.opcode.bytes[0] == INT3_INSN_OPCODED) 305 return 0; 306 addr += insn.length; 307 } 308 309 return (addr == paddr); 310 } 311 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation