Message ID | 20191018161033.261971-17-samitolvanen@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | add support for Clang's Shadow Call Stack | expand |
On Fri, 18 Oct 2019 at 18:11, Sami Tolvanen <samitolvanen@google.com> wrote: > > This allows CONFIG_KRETPROBES to be disabled without disabling > kprobes entirely. > > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Can we make kretprobes work with the shadow call stack instead? > --- > arch/arm64/kernel/probes/kprobes.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm64/kernel/probes/kprobes.c b/arch/arm64/kernel/probes/kprobes.c > index c4452827419b..98230ae979ca 100644 > --- a/arch/arm64/kernel/probes/kprobes.c > +++ b/arch/arm64/kernel/probes/kprobes.c > @@ -551,6 +551,7 @@ void __kprobes __used *trampoline_probe_handler(struct pt_regs *regs) > return (void *)orig_ret_address; > } > > +#ifdef CONFIG_KRETPROBES > void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri, > struct pt_regs *regs) > { > @@ -564,6 +565,7 @@ int __kprobes arch_trampoline_kprobe(struct kprobe *p) > { > return 0; > } > +#endif > > int __init arch_init_kprobes(void) > { > -- > 2.23.0.866.gb869b98d4c-goog >
On Mon, Oct 21, 2019 at 08:21:48AM +0200, Ard Biesheuvel wrote: > On Fri, 18 Oct 2019 at 18:11, Sami Tolvanen <samitolvanen@google.com> wrote: > > > > This allows CONFIG_KRETPROBES to be disabled without disabling > > kprobes entirely. > > > > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > > Can we make kretprobes work with the shadow call stack instead? I've been viewing that as "next steps". This series is the first step: actually gaining the feature and clearly indicating where future improvements can live.
diff --git a/arch/arm64/kernel/probes/kprobes.c b/arch/arm64/kernel/probes/kprobes.c index c4452827419b..98230ae979ca 100644 --- a/arch/arm64/kernel/probes/kprobes.c +++ b/arch/arm64/kernel/probes/kprobes.c @@ -551,6 +551,7 @@ void __kprobes __used *trampoline_probe_handler(struct pt_regs *regs) return (void *)orig_ret_address; } +#ifdef CONFIG_KRETPROBES void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri, struct pt_regs *regs) { @@ -564,6 +565,7 @@ int __kprobes arch_trampoline_kprobe(struct kprobe *p) { return 0; } +#endif int __init arch_init_kprobes(void) {
This allows CONFIG_KRETPROBES to be disabled without disabling kprobes entirely. Signed-off-by: Sami Tolvanen <samitolvanen@google.com> --- arch/arm64/kernel/probes/kprobes.c | 2 ++ 1 file changed, 2 insertions(+)