From: Kees Cook <keescook@chromium.org>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Andrew Morton <akpm@linux-foundation.org>,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
Helge Deller <deller@gmx.de>, Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-arch@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v1 05/10] asm-generic: Define 'funct_descr_t' to commonly describe function descriptors
Date: Wed, 13 Oct 2021 00:01:48 -0700 [thread overview]
Message-ID: <202110130001.11A50456@keescook> (raw)
In-Reply-To: <02224551451ab9c37055499fc621c41246c81125.1633964380.git.christophe.leroy@csgroup.eu>
On Mon, Oct 11, 2021 at 05:25:32PM +0200, Christophe Leroy wrote:
> We have three architectures using function descriptors, each with its
> own name.
>
> Add a common typedef that can be used in generic code.
>
> Also add a stub typedef for architecture without function descriptors,
nit: funct_descr_t reads weird to me. why not func_desc_t ? Either way:
Reviewed-by: Kees Cook <keescook@chromium.org>
> to avoid a forest of #ifdefs.
>
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> ---
> arch/ia64/include/asm/sections.h | 1 +
> arch/parisc/include/asm/sections.h | 1 +
> arch/powerpc/include/asm/sections.h | 1 +
> include/asm-generic/sections.h | 3 +++
> 4 files changed, 6 insertions(+)
>
> diff --git a/arch/ia64/include/asm/sections.h b/arch/ia64/include/asm/sections.h
> index 80f5868afb06..929b5c535620 100644
> --- a/arch/ia64/include/asm/sections.h
> +++ b/arch/ia64/include/asm/sections.h
> @@ -8,6 +8,7 @@
> */
>
> #define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
> +typedef struct fdesc funct_descr_t;
>
> #include <linux/elf.h>
> #include <linux/uaccess.h>
> diff --git a/arch/parisc/include/asm/sections.h b/arch/parisc/include/asm/sections.h
> index 2e781ee19b66..329e80f7af0a 100644
> --- a/arch/parisc/include/asm/sections.h
> +++ b/arch/parisc/include/asm/sections.h
> @@ -4,6 +4,7 @@
>
> #ifdef CONFIG_64BIT
> #define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
> +typedef Elf64_Fdesc funct_descr_t;
> #endif
>
> /* nothing to see, move along */
> diff --git a/arch/powerpc/include/asm/sections.h b/arch/powerpc/include/asm/sections.h
> index b7f1ba04e756..d0d5287fa568 100644
> --- a/arch/powerpc/include/asm/sections.h
> +++ b/arch/powerpc/include/asm/sections.h
> @@ -10,6 +10,7 @@
>
> #ifdef PPC64_ELF_ABI_v1
> #define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
> +typedef struct ppc64_opd_entry funct_descr_t;
> #endif
>
> #include <asm-generic/sections.h>
> diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
> index 1db5cfd69817..436412d94054 100644
> --- a/include/asm-generic/sections.h
> +++ b/include/asm-generic/sections.h
> @@ -63,6 +63,9 @@ extern __visible const void __nosave_begin, __nosave_end;
> #else
> #define dereference_function_descriptor(p) ((void *)(p))
> #define dereference_kernel_function_descriptor(p) ((void *)(p))
> +typedef struct {
> + unsigned long addr;
> +} funct_descr_t;
> #endif
>
> /* random extra sections (if any). Override
> --
> 2.31.1
>
--
Kees Cook
WARNING: multiple messages have this Message-ID (diff)
From: Kees Cook <keescook@chromium.org>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Andrew Morton <akpm@linux-foundation.org>,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
Helge Deller <deller@gmx.de>, Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-arch@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v1 05/10] asm-generic: Define 'funct_descr_t' to commonly describe function descriptors
Date: Wed, 13 Oct 2021 07:01:48 +0000 [thread overview]
Message-ID: <202110130001.11A50456@keescook> (raw)
In-Reply-To: <02224551451ab9c37055499fc621c41246c81125.1633964380.git.christophe.leroy@csgroup.eu>
On Mon, Oct 11, 2021 at 05:25:32PM +0200, Christophe Leroy wrote:
> We have three architectures using function descriptors, each with its
> own name.
>
> Add a common typedef that can be used in generic code.
>
> Also add a stub typedef for architecture without function descriptors,
nit: funct_descr_t reads weird to me. why not func_desc_t ? Either way:
Reviewed-by: Kees Cook <keescook@chromium.org>
> to avoid a forest of #ifdefs.
>
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> ---
> arch/ia64/include/asm/sections.h | 1 +
> arch/parisc/include/asm/sections.h | 1 +
> arch/powerpc/include/asm/sections.h | 1 +
> include/asm-generic/sections.h | 3 +++
> 4 files changed, 6 insertions(+)
>
> diff --git a/arch/ia64/include/asm/sections.h b/arch/ia64/include/asm/sections.h
> index 80f5868afb06..929b5c535620 100644
> --- a/arch/ia64/include/asm/sections.h
> +++ b/arch/ia64/include/asm/sections.h
> @@ -8,6 +8,7 @@
> */
>
> #define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
> +typedef struct fdesc funct_descr_t;
>
> #include <linux/elf.h>
> #include <linux/uaccess.h>
> diff --git a/arch/parisc/include/asm/sections.h b/arch/parisc/include/asm/sections.h
> index 2e781ee19b66..329e80f7af0a 100644
> --- a/arch/parisc/include/asm/sections.h
> +++ b/arch/parisc/include/asm/sections.h
> @@ -4,6 +4,7 @@
>
> #ifdef CONFIG_64BIT
> #define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
> +typedef Elf64_Fdesc funct_descr_t;
> #endif
>
> /* nothing to see, move along */
> diff --git a/arch/powerpc/include/asm/sections.h b/arch/powerpc/include/asm/sections.h
> index b7f1ba04e756..d0d5287fa568 100644
> --- a/arch/powerpc/include/asm/sections.h
> +++ b/arch/powerpc/include/asm/sections.h
> @@ -10,6 +10,7 @@
>
> #ifdef PPC64_ELF_ABI_v1
> #define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
> +typedef struct ppc64_opd_entry funct_descr_t;
> #endif
>
> #include <asm-generic/sections.h>
> diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
> index 1db5cfd69817..436412d94054 100644
> --- a/include/asm-generic/sections.h
> +++ b/include/asm-generic/sections.h
> @@ -63,6 +63,9 @@ extern __visible const void __nosave_begin, __nosave_end;
> #else
> #define dereference_function_descriptor(p) ((void *)(p))
> #define dereference_kernel_function_descriptor(p) ((void *)(p))
> +typedef struct {
> + unsigned long addr;
> +} funct_descr_t;
> #endif
>
> /* random extra sections (if any). Override
> --
> 2.31.1
>
--
Kees Cook
WARNING: multiple messages have this Message-ID (diff)
From: Kees Cook <keescook@chromium.org>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: linux-arch@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-parisc@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Helge Deller <deller@gmx.de>,
linux-kernel@vger.kernel.org,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
linux-mm@kvack.org, Paul Mackerras <paulus@samba.org>,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v1 05/10] asm-generic: Define 'funct_descr_t' to commonly describe function descriptors
Date: Wed, 13 Oct 2021 00:01:48 -0700 [thread overview]
Message-ID: <202110130001.11A50456@keescook> (raw)
In-Reply-To: <02224551451ab9c37055499fc621c41246c81125.1633964380.git.christophe.leroy@csgroup.eu>
On Mon, Oct 11, 2021 at 05:25:32PM +0200, Christophe Leroy wrote:
> We have three architectures using function descriptors, each with its
> own name.
>
> Add a common typedef that can be used in generic code.
>
> Also add a stub typedef for architecture without function descriptors,
nit: funct_descr_t reads weird to me. why not func_desc_t ? Either way:
Reviewed-by: Kees Cook <keescook@chromium.org>
> to avoid a forest of #ifdefs.
>
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> ---
> arch/ia64/include/asm/sections.h | 1 +
> arch/parisc/include/asm/sections.h | 1 +
> arch/powerpc/include/asm/sections.h | 1 +
> include/asm-generic/sections.h | 3 +++
> 4 files changed, 6 insertions(+)
>
> diff --git a/arch/ia64/include/asm/sections.h b/arch/ia64/include/asm/sections.h
> index 80f5868afb06..929b5c535620 100644
> --- a/arch/ia64/include/asm/sections.h
> +++ b/arch/ia64/include/asm/sections.h
> @@ -8,6 +8,7 @@
> */
>
> #define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
> +typedef struct fdesc funct_descr_t;
>
> #include <linux/elf.h>
> #include <linux/uaccess.h>
> diff --git a/arch/parisc/include/asm/sections.h b/arch/parisc/include/asm/sections.h
> index 2e781ee19b66..329e80f7af0a 100644
> --- a/arch/parisc/include/asm/sections.h
> +++ b/arch/parisc/include/asm/sections.h
> @@ -4,6 +4,7 @@
>
> #ifdef CONFIG_64BIT
> #define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
> +typedef Elf64_Fdesc funct_descr_t;
> #endif
>
> /* nothing to see, move along */
> diff --git a/arch/powerpc/include/asm/sections.h b/arch/powerpc/include/asm/sections.h
> index b7f1ba04e756..d0d5287fa568 100644
> --- a/arch/powerpc/include/asm/sections.h
> +++ b/arch/powerpc/include/asm/sections.h
> @@ -10,6 +10,7 @@
>
> #ifdef PPC64_ELF_ABI_v1
> #define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
> +typedef struct ppc64_opd_entry funct_descr_t;
> #endif
>
> #include <asm-generic/sections.h>
> diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
> index 1db5cfd69817..436412d94054 100644
> --- a/include/asm-generic/sections.h
> +++ b/include/asm-generic/sections.h
> @@ -63,6 +63,9 @@ extern __visible const void __nosave_begin, __nosave_end;
> #else
> #define dereference_function_descriptor(p) ((void *)(p))
> #define dereference_kernel_function_descriptor(p) ((void *)(p))
> +typedef struct {
> + unsigned long addr;
> +} funct_descr_t;
> #endif
>
> /* random extra sections (if any). Override
> --
> 2.31.1
>
--
Kees Cook
next prev parent reply other threads:[~2021-10-13 7:01 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-11 15:25 [PATCH v1 00/10] Fix LKDTM for PPC64/IA64/PARISC Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` [PATCH v1 01/10] powerpc: Move 'struct ppc64_opd_entry' back into asm/elf.h Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-12 7:10 ` Michael Ellerman
2021-10-12 7:10 ` Michael Ellerman
2021-10-12 7:10 ` Michael Ellerman
2021-10-12 8:02 ` Arnd Bergmann
2021-10-12 8:02 ` Arnd Bergmann
2021-10-12 8:02 ` Arnd Bergmann
2021-10-13 6:59 ` Kees Cook
2021-10-13 6:59 ` Kees Cook
2021-10-13 6:59 ` Kees Cook
2021-10-11 15:25 ` [PATCH v1 02/10] powerpc: Rename 'funcaddr' to 'addr' in 'struct ppc64_opd_entry' Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-13 6:59 ` Kees Cook
2021-10-13 6:59 ` Kees Cook
2021-10-13 6:59 ` Kees Cook
2021-10-11 15:25 ` [PATCH v1 03/10] ia64: Rename 'ip' to 'addr' in 'struct fdesc' Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-13 6:59 ` Kees Cook
2021-10-13 6:59 ` Kees Cook
2021-10-13 6:59 ` Kees Cook
2021-10-11 15:25 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stubs Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-12 6:02 ` Helge Deller
2021-10-12 6:02 ` Helge Deller
2021-10-12 6:02 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stub Helge Deller
2021-10-12 6:11 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stubs Christophe Leroy
2021-10-12 6:11 ` Christophe Leroy
2021-10-12 6:11 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stub Christophe Leroy
2021-10-12 6:48 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stubs Helge Deller
2021-10-12 6:48 ` Helge Deller
2021-10-12 6:48 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stub Helge Deller
2021-10-13 7:00 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stubs Kees Cook
2021-10-13 7:00 ` Kees Cook
2021-10-13 7:00 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stub Kees Cook
2021-10-14 7:20 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stubs Christophe Leroy
2021-10-14 7:20 ` Christophe Leroy
2021-10-14 7:20 ` [PATCH v1 04/10] asm-generic: Use HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR to define associated stub Christophe Leroy
2021-10-11 15:25 ` [PATCH v1 05/10] asm-generic: Define 'funct_descr_t' to commonly describe function descriptors Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-13 7:01 ` Kees Cook [this message]
2021-10-13 7:01 ` Kees Cook
2021-10-13 7:01 ` Kees Cook
2021-10-13 7:23 ` Christophe Leroy
2021-10-13 7:23 ` Christophe Leroy
2021-10-13 7:23 ` Christophe Leroy
2021-10-13 7:27 ` Kees Cook
2021-10-13 7:27 ` Kees Cook
2021-10-13 7:27 ` Kees Cook
2021-10-11 15:25 ` [PATCH v1 06/10] asm-generic: Refactor dereference_[kernel]_function_descriptor() Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-13 7:02 ` Kees Cook
2021-10-13 7:02 ` Kees Cook
2021-10-13 7:02 ` Kees Cook
2021-10-13 11:20 ` Christophe Leroy
2021-10-13 11:20 ` Christophe Leroy
2021-10-13 11:20 ` Christophe Leroy
2021-10-13 11:34 ` Arnd Bergmann
2021-10-13 11:34 ` Arnd Bergmann
2021-10-13 11:34 ` Arnd Bergmann
2021-10-11 15:25 ` [PATCH v1 07/10] lkdtm: Force do_nothing() out of line Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-13 7:02 ` Kees Cook
2021-10-13 7:02 ` Kees Cook
2021-10-13 7:02 ` Kees Cook
2021-10-11 15:25 ` [PATCH v1 08/10] lkdtm: Really write into kernel text in WRITE_KERN Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-13 7:05 ` Kees Cook
2021-10-13 7:05 ` Kees Cook
2021-10-13 7:05 ` Kees Cook
2021-10-13 7:29 ` Christophe Leroy
2021-10-13 7:29 ` Christophe Leroy
2021-10-13 7:29 ` Christophe Leroy
2021-10-11 15:25 ` [PATCH v1 09/10] lkdtm: Fix lkdtm_EXEC_RODATA() Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-13 7:09 ` Kees Cook
2021-10-13 7:09 ` Kees Cook
2021-10-13 7:09 ` Kees Cook
2021-10-13 7:35 ` Christophe Leroy
2021-10-13 7:35 ` Christophe Leroy
2021-10-13 7:35 ` Christophe Leroy
2021-10-13 7:23 ` Kees Cook
2021-10-13 7:23 ` Kees Cook
2021-10-13 7:23 ` Kees Cook
2021-10-13 7:39 ` Christophe Leroy
2021-10-13 7:39 ` Christophe Leroy
2021-10-13 7:39 ` Christophe Leroy
2021-10-13 7:48 ` Christophe Leroy
2021-10-13 7:48 ` Christophe Leroy
2021-10-13 7:48 ` Christophe Leroy
2021-10-13 12:45 ` Christophe Leroy
2021-10-13 12:45 ` Christophe Leroy
2021-10-13 12:45 ` Christophe Leroy
2021-10-11 15:25 ` [PATCH v1 10/10] lkdtm: Fix execute_[user]_location() Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-11 15:25 ` Christophe Leroy
2021-10-13 7:16 ` Kees Cook
2021-10-13 7:16 ` Kees Cook
2021-10-13 7:16 ` Kees Cook
2021-10-13 12:00 ` Christophe Leroy
2021-10-13 12:00 ` Christophe Leroy
2021-10-13 12:00 ` Christophe Leroy
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=202110130001.11A50456@keescook \
--to=keescook@chromium.org \
--cc=James.Bottomley@hansenpartnership.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=christophe.leroy@csgroup.eu \
--cc=deller@gmx.de \
--cc=gregkh@linuxfoundation.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.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.