public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	Jason Baron <jbaron@akamai.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Kees Cook <keescook@chromium.org>
Subject: Re: [RFC PATCH 3/7] static_call: use helper to access non-exported key
Date: Tue, 9 Nov 2021 19:53:05 +0100	[thread overview]
Message-ID: <YYrDkUsJVcOzxMPL@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <20211109164549.1724710-4-ardb@kernel.org>

On Tue, Nov 09, 2021 at 05:45:45PM +0100, Ard Biesheuvel wrote:
> @@ -196,13 +190,21 @@ extern long __static_call_return0(void);
>  	EXPORT_SYMBOL_GPL(STATIC_CALL_KEY(name));			\
>  	EXPORT_SYMBOL_GPL(STATIC_CALL_TRAMP(name))
>  
> +#define EXPORT_STATIC_CALL_GETKEY_HELPER(name)				\
> +	struct static_call_key *STATIC_CALL_GETKEY(name)(void) {	\
> +		BUG_ON(!core_kernel_text(				\
> +			(unsigned long)__builtin_return_address(0)));	\
> +		return &STATIC_CALL_KEY(name);				\
> +	}								\
> +	EXPORT_SYMBOL_GPL(STATIC_CALL_GETKEY(name))

So if I were a nevarious module, I would look up the above symbol from
kallsyms (it is exported and easily obtainable) and then simply
read the text to discover the key address and we're in business.


  reply	other threads:[~2021-11-09 18:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-09 16:45 [RFC PATCH 0/7] static call updates Ard Biesheuvel
2021-11-09 16:45 ` [RFC PATCH 1/7] static_call: get rid of static_call_cond() Ard Biesheuvel
2021-11-09 18:38   ` Peter Zijlstra
2021-11-09 18:41     ` Ard Biesheuvel
2021-11-09 19:22       ` Peter Zijlstra
2021-11-09 19:32   ` Peter Zijlstra
2021-11-09 16:45 ` [RFC PATCH 2/7] static_call: deal with unexported keys without cluttering up the API Ard Biesheuvel
2021-11-09 18:49   ` Peter Zijlstra
2021-11-09 18:53     ` Ard Biesheuvel
2021-11-09 19:41       ` Peter Zijlstra
2021-11-09 16:45 ` [RFC PATCH 3/7] static_call: use helper to access non-exported key Ard Biesheuvel
2021-11-09 18:53   ` Peter Zijlstra [this message]
2021-11-09 18:54     ` Ard Biesheuvel
2021-11-09 19:42       ` Peter Zijlstra
2021-11-09 19:45         ` Ard Biesheuvel
2021-11-09 16:45 ` [RFC PATCH 4/7] static_call: fix broken static_call_query() for non-exported keys Ard Biesheuvel
2021-11-09 18:56   ` Peter Zijlstra
2021-11-09 16:45 ` [RFC PATCH 5/7] static_call: use non-function types to refer to the trampolines Ard Biesheuvel
2021-11-09 16:45 ` [RFC PATCH 6/7] static_call: rename EXPORT_ macros to be more self-explanatory Ard Biesheuvel
2021-11-09 19:00   ` Peter Zijlstra
2021-11-09 19:03     ` Ard Biesheuvel
2021-11-09 16:45 ` [RFC PATCH 7/7] static_call: add generic support for non-exported keys Ard Biesheuvel

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=YYrDkUsJVcOzxMPL@hirez.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=ardb@kernel.org \
    --cc=jbaron@akamai.com \
    --cc=jpoimboe@redhat.com \
    --cc=keescook@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox