Re: [PATCH v2 1/9] x86/kprobes: Prohibit probing on optprobe template code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 16 Jan 2019 13:35:58 +0000
Sasha Levin <sashal@xxxxxxxxxx> wrote:

> Hi,
> 
> [This is an automated email]
> 
> This commit has been processed because it contains a "Fixes:" tag,
> fixing commit: 9326638cbee2 kprobes, x86: Use NOKPROBE_SYMBOL() instead of __kprobes annotation.
> 
> The bot has tested the following trees: v4.20.2, v4.19.15, v4.14.93, v4.9.150, v4.4.170, v3.18.132.
> 
> v4.20.2: Build OK!
> v4.19.15: Build OK!
> v4.14.93: Build OK!
> v4.9.150: Build failed! Errors:
>     ./include/linux/kprobes.h:494:22: error: initializer element is not constant
>     ./include/linux/kprobes.h:494:22: error: initializer element is not constant
>     ./include/linux/kprobes.h:494:22: error: initializer element is not constant
>     ./include/linux/kprobes.h:494:22: error: initializer element is not constant

Ah, this is related to

commit 54a7d50b9205 ("x86: mark kprobe templates as character arrays, not single characters")

Before this change, I used & optprobe_template_*, so it the patch should be

+NOKPROBE_SYMBOL(optprobe_template_func);
+NOKPROBE_SYMBOL(&optprobe_template_entry);
+NOKPROBE_SYMBOL(&optprobe_template_val);
+NOKPROBE_SYMBOL(&optprobe_template_call);
+NOKPROBE_SYMBOL(&optprobe_template_end);

(since optprobe_template_func is a function symbol, it doesn't need &)

> 
> v4.4.170: Failed to apply! Possible dependencies:
>     21266be9ed54 ("arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug")
>     44a95dae1d22 ("KVM: x86: Detect and Initialize AVIC support")
>     520040146a0a ("KVM: x86: Use vector-hashing to deliver lowest-priority interrupts")
>     5881f73757cc ("svm: Introduce AMD IOMMU avic_ga_log_notifier")
>     5c919412fe61 ("kvm/x86: Hyper-V synthetic interrupt controller")
>     6308630bd3db ("kvm/x86: split ioapic-handled and EOI exit bitmaps")
>     c0dd671686b2 ("objtool: Mark non-standard object files and directories")
>     c207aee48037 ("objtool, x86: Add several functions and files to the objtool whitelist")
>     c6d308534aef ("UBSAN: run-time undefined behavior sanity checker")
>     d62caabb41f3 ("kvm/x86: per-vcpu apicv deactivation support")
>     f876f440df39 ("crypto: sha256-mb - SHA256 multibuffer job manager and glue code")

OK, commit 935893a17a99 ("objtool, x86: Add several functions and files to the objtool whitelist")
introduced optprobe_template_func, so for v4.4.X and v3.18.X, we don't need the first line.
So the patch should be something like,

                        "optprobe_template_end:\n");

+NOKPROBE_SYMBOL(&optprobe_template_entry);
+NOKPROBE_SYMBOL(&optprobe_template_val);
+NOKPROBE_SYMBOL(&optprobe_template_call);
+NOKPROBE_SYMBOL(&optprobe_template_end);
+
 #define TMPL_MOVE_IDX \
         ((long)&optprobe_template_val - (long)&optprobe_template_entry)


> 
> v3.18.132: Failed to apply! Possible dependencies:
>     0b24becc810d ("kasan: add kernel address sanitizer infrastructure")
>     131484c8da97 ("x86/debug: Remove perpetually broken, unmaintainable dwarf annotations")
>     24933b82c0d9 ("x86/asm/entry: Rename 'init_tss' to 'cpu_tss'")
>     76f5df43cab5 ("x86/asm/entry/64: Always allocate a complete "struct pt_regs" on the kernel stack")
>     8ef46a672a7d ("x86/asm/entry: Add this_cpu_sp0() to read sp0 for the current cpu")
>     905a36a28518 ("x86/asm/entry: Move entry_64.S and entry_32.S to arch/x86/entry/")
>     9d0c914c60f4 ("x86/asm/entry/64/compat: Change the 32-bit sysenter code to use sp0")
>     a232e3d558ee ("x86/asm/entry/32: Update "interrupt off" comments")
>     b87cf63e2a5f ("x86/asm/entry: Add comments about various syscall instructions")
>     c0dd671686b2 ("objtool: Mark non-standard object files and directories")
>     c207aee48037 ("objtool, x86: Add several functions and files to the objtool whitelist")
>     c63f06dd1579 ("kasan: move KASAN_SANITIZE in arch/x86/boot/Makefile")
>     ef7f0d6a6ca8 ("x86_64: add KASan support")
>     f876f440df39 ("crypto: sha256-mb - SHA256 multibuffer job manager and glue code")
> 
> 
> How should we proceed with this patch?

I'll send backport patches for those versions.

Thank you,

> 
> --
> Thanks,
> Sasha


-- 
Masami Hiramatsu <mhiramat@xxxxxxxxxx>



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux