From: Oscar Carter <oscar.carter@gmx.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Oscar Carter <oscar.carter@gmx.com>,
Ingo Molnar <mingo@redhat.com>, Kees Cook <keescook@chromium.org>,
linux-kernel@vger.kernel.org,
kernel-hardening@lists.openwall.com, Jann Horn <jannh@google.com>
Subject: Re: [PATCH v2 2/2] kernel/trace: Remove function callback casts
Date: Sat, 25 Jul 2020 17:09:14 +0200 [thread overview]
Message-ID: <20200725150914.GA3362@ubuntu> (raw)
In-Reply-To: <20200724143457.27755412@oasis.local.home>
Hi Steven,
On Fri, Jul 24, 2020 at 02:34:57PM -0400, Steven Rostedt wrote:
> On Fri, 24 Jul 2020 19:55:00 +0200
> Oscar Carter <oscar.carter@gmx.com> wrote:
>
> > > Which one of the above is this patch set for?
> >
> > This patch is the result of a warning obtained with the following:
> >
> > make allmodconfig ARCH=powerpc
> > make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- -j4
> >
> > And with the -Wcast-function-type enabled in the top level makefile.
>
> Looking into powerpc I found this:
>
> arch/powerpc/include/asm/ftrace.h:
>
> #ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS
> #define ARCH_SUPPORTS_FTRACE_OPS 1
> #endif
>
>
> arch/powerpc/Kconfig:
>
> select HAVE_DYNAMIC_FTRACE_WITH_REGS if MPROFILE_KERNEL
> [..]
>
> config MPROFILE_KERNEL
> depends on PPC64 && CPU_LITTLE_ENDIAN && FUNCTION_TRACER
> def_bool $(success,$(srctree)/arch/powerpc/tools/gcc-check-mprofile-kernel.sh $(CC) -I$(srctree)/include -D__KERNEL__)
>
> So, it looks like you need to be 64bit PowerPC, Little Endian, and gcc
> needs to support -mprofile.
>
> Otherwise, it falls back to the old way that does the type casting.
>
> If you are really concerned about this, I would recommend adding
> support to the architecture you care about, and then this will no
> longer be an issue.
>
> The funny part is, you can still add support for ftrace_ops, without
> adding support for DYNAMIC_FTRACE_WITH_REGS, if you only care about not
> having to do that typecast.
I agree with you. I will try to add the support for ftrace_ops without
adding support for DYNAMIC_FTRACE_WITH_REGS to the powerpc architecture.
It's a great solution to allow a clean CFI build and so, protect this
arch (powerpc) against attacks that try to modify the normal control
flow.
I take a look at the kernel documentation about port ftrace to other
architectures [1] but it is out of date.
If I try to do this I will need some help. Some info that point me to the
right direction would be greatly appreciated. Some advice about what
functions I will need to implement would be really helpfull. Or point me
to the right piece of code that I can pick as base point.
> My NAK still stands. I wont let an intrusive patch be added to the
> ftrace core code to deal with an unsupported feature in an architecture.
Don't worry. I agree with you and thanks for finding a better way to
accomplish the initial purpose.
> I would be will to add that linker trick to remove the warning. Or we
> just use that warning as incentive to get architecture developers to
> implement this feature ;-)
In my opinion it would be better to leave the code as it an make the warning
visible until this feature has been added.
> -- Steve
[1] https://www.kernel.org/doc/html/latest/trace/ftrace-design.html
Thanks again,
Oscar Carter
next prev parent reply other threads:[~2020-07-25 15:10 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-19 15:50 [PATCH v2 0/2] kernel/trace: Remove function callback casts Oscar Carter
2020-07-19 15:50 ` [PATCH v2 1/2] kernel/trace: Prepare to remove " Oscar Carter
2020-07-19 15:50 ` [PATCH v2 2/2] kernel/trace: Remove " Oscar Carter
2020-07-21 18:05 ` Steven Rostedt
2020-07-24 16:19 ` Oscar Carter
2020-07-24 16:35 ` Steven Rostedt
2020-07-24 17:14 ` Oscar Carter
2020-07-24 17:24 ` Oscar Carter
2020-07-24 17:36 ` Steven Rostedt
2020-07-24 17:40 ` Steven Rostedt
2020-07-24 17:48 ` Steven Rostedt
2020-07-24 17:55 ` Oscar Carter
2020-07-24 18:34 ` Steven Rostedt
2020-07-25 15:09 ` Oscar Carter [this message]
2020-07-25 15:19 ` Oscar Carter
2020-07-26 15:52 ` Oscar Carter
2020-07-27 13:53 ` Steven Rostedt
2020-07-31 14:41 ` Oscar Carter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200725150914.GA3362@ubuntu \
--to=oscar.carter@gmx.com \
--cc=jannh@google.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.