All of lore.kernel.org
 help / color / mirror / Atom feed
From: Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>
To: Andrey Ryabinin <ryabinin.a.a-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Ard Biesheuvel
	<ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Matt Fleming
	<matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
	Leif Lindholm
	<leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCH v4 3/3] arm64/efi: isolate EFI stub from the kernel proper
Date: Fri, 9 Oct 2015 10:10:37 +0100	[thread overview]
Message-ID: <20151009091037.GC26278@arm.com> (raw)
In-Reply-To: <CAPAsAGz7Tp6Z87tPq_NNh_mcwPF_DOaXzu0po5f6AQxPAcsALQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On Fri, Oct 09, 2015 at 11:12:24AM +0300, Andrey Ryabinin wrote:
> 2015-10-08 22:02 GMT+03:00 Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>:
> > --- a/arch/arm64/kernel/image.h
> > +++ b/arch/arm64/kernel/image.h
> > @@ -59,4 +59,31 @@
> >         _kernel_offset_le       = DATA_LE64(TEXT_OFFSET);       \
> >         _kernel_flags_le        = DATA_LE64(__HEAD_FLAGS);
> >
> > +#ifdef CONFIG_EFI
> > +
> > +/*
> > + * The EFI stub has its own symbol namespace prefixed by __efistub_, to
> > + * isolate it from the kernel proper. The following symbols are legally
> > + * accessed by the stub, so provide some aliases to make them accessible.
> > + * Only include data symbols here, or text symbols of functions that are
> > + * guaranteed to be safe when executed at another offset than they were
> > + * linked at. The routines below are all implemented in assembler in a
> > + * position independent manner
> > + */
> > +__efistub_memcmp               = __pi_memcmp;
> > +__efistub_memchr               = __pi_memchr;
> > +__efistub_memcpy               = __pi_memcpy;
> > +__efistub_memmove              = __pi_memmove;
> > +__efistub_memset               = __pi_memset;
> > +__efistub_strlen               = __pi_strlen;
> > +__efistub_strcmp               = __pi_strcmp;
> > +__efistub_strncmp              = __pi_strncmp;
> > +__efistub___flush_dcache_area  = __pi___flush_dcache_area;
> 
> So why we need these __pi_* aliases?
> We could just do __efistub_memcmp = memcmp; Right?

We *could*, but that defeats the whole purpose of tagging
position-independent functions explicitly in the kernel text.

Will

WARNING: multiple messages have this Message-ID (diff)
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 3/3] arm64/efi: isolate EFI stub from the kernel proper
Date: Fri, 9 Oct 2015 10:10:37 +0100	[thread overview]
Message-ID: <20151009091037.GC26278@arm.com> (raw)
In-Reply-To: <CAPAsAGz7Tp6Z87tPq_NNh_mcwPF_DOaXzu0po5f6AQxPAcsALQ@mail.gmail.com>

On Fri, Oct 09, 2015 at 11:12:24AM +0300, Andrey Ryabinin wrote:
> 2015-10-08 22:02 GMT+03:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>:
> > --- a/arch/arm64/kernel/image.h
> > +++ b/arch/arm64/kernel/image.h
> > @@ -59,4 +59,31 @@
> >         _kernel_offset_le       = DATA_LE64(TEXT_OFFSET);       \
> >         _kernel_flags_le        = DATA_LE64(__HEAD_FLAGS);
> >
> > +#ifdef CONFIG_EFI
> > +
> > +/*
> > + * The EFI stub has its own symbol namespace prefixed by __efistub_, to
> > + * isolate it from the kernel proper. The following symbols are legally
> > + * accessed by the stub, so provide some aliases to make them accessible.
> > + * Only include data symbols here, or text symbols of functions that are
> > + * guaranteed to be safe when executed at another offset than they were
> > + * linked at. The routines below are all implemented in assembler in a
> > + * position independent manner
> > + */
> > +__efistub_memcmp               = __pi_memcmp;
> > +__efistub_memchr               = __pi_memchr;
> > +__efistub_memcpy               = __pi_memcpy;
> > +__efistub_memmove              = __pi_memmove;
> > +__efistub_memset               = __pi_memset;
> > +__efistub_strlen               = __pi_strlen;
> > +__efistub_strcmp               = __pi_strcmp;
> > +__efistub_strncmp              = __pi_strncmp;
> > +__efistub___flush_dcache_area  = __pi___flush_dcache_area;
> 
> So why we need these __pi_* aliases?
> We could just do __efistub_memcmp = memcmp; Right?

We *could*, but that defeats the whole purpose of tagging
position-independent functions explicitly in the kernel text.

Will

  parent reply	other threads:[~2015-10-09  9:10 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-08 19:02 [PATCH v4 0/3] arm64: EFI stub isolation Ard Biesheuvel
2015-10-08 19:02 ` Ard Biesheuvel
     [not found] ` <1444330924-17830-1-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-10-08 19:02   ` [PATCH v4 1/3] arm64/efi: remove /chosen/linux,uefi-stub-kern-ver DT property Ard Biesheuvel
2015-10-08 19:02     ` [PATCH v4 1/3] arm64/efi: remove /chosen/linux, uefi-stub-kern-ver " Ard Biesheuvel
     [not found]     ` <1444330924-17830-2-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-10-10 22:31       ` [PATCH v4 1/3] arm64/efi: remove /chosen/linux,uefi-stub-kern-ver " Matt Fleming
2015-10-10 22:31         ` Matt Fleming
2015-10-08 19:02   ` [PATCH v4 2/3] arm64: use ENDPIPROC() to annotate position independent assembler routines Ard Biesheuvel
2015-10-08 19:02     ` Ard Biesheuvel
2015-10-08 19:02   ` [PATCH v4 3/3] arm64/efi: isolate EFI stub from the kernel proper Ard Biesheuvel
2015-10-08 19:02     ` Ard Biesheuvel
     [not found]     ` <1444330924-17830-4-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-10-09  8:12       ` Andrey Ryabinin
2015-10-09  8:12         ` Andrey Ryabinin
     [not found]         ` <CAPAsAGz7Tp6Z87tPq_NNh_mcwPF_DOaXzu0po5f6AQxPAcsALQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-09  9:10           ` Will Deacon [this message]
2015-10-09  9:10             ` Will Deacon
2015-10-09  9:40             ` Andrey Ryabinin
2015-10-09  9:40               ` Andrey Ryabinin
     [not found]               ` <CAPAsAGzgqOZVdTfpBGADAhZjOJTCqdB1Paq-14vk-_1hu4DCyw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-09  9:43                 ` Will Deacon
2015-10-09  9:43                   ` Will Deacon
     [not found]                   ` <20151009094324.GE26278-5wv7dgnIgG8@public.gmane.org>
2015-10-09  9:48                     ` Andrey Ryabinin
2015-10-09  9:48                       ` Andrey Ryabinin
2015-10-10 22:40       ` Matt Fleming
2015-10-10 22:40         ` Matt Fleming
2015-10-26 22:26       ` Jeremy Linton
2015-10-26 22:26         ` Jeremy Linton
     [not found]         ` <562EA894.8070505-5wv7dgnIgG8@public.gmane.org>
2015-10-26 22:33           ` Jeremy Linton
2015-10-26 22:33             ` Jeremy Linton
     [not found]             ` <562EAA22.3010905-5wv7dgnIgG8@public.gmane.org>
2015-10-27  2:20               ` Ard Biesheuvel
2015-10-27  2:20                 ` Ard Biesheuvel
     [not found]                 ` <CAKv+Gu-G1YS9Ha=-rtnPKJTOxBTrdSq6=Tqwq_GPW742JUE+2Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-27 14:44                   ` Jeremy Linton
2015-10-27 14:44                     ` Jeremy Linton
     [not found]                     ` <562F8DCE.4010308-5wv7dgnIgG8@public.gmane.org>
2015-10-30 12:17                       ` Ard Biesheuvel
2015-10-30 12:17                         ` Ard Biesheuvel
     [not found]                         ` <CAKv+Gu-m7dJbiF=8i=+cN=bx+y8AKu_MgHrS29jNK0fTvuwQ5Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-30 14:35                           ` Mark Rutland
2015-10-30 14:35                             ` Mark Rutland
2015-10-30 16:01                           ` Catalin Marinas
2015-10-30 16:01                             ` Catalin Marinas
2015-11-02 12:49                   ` Matt Fleming
2015-11-02 12:49                     ` Matt Fleming
2015-11-24  9:34     ` Robert Richter
2015-11-24  9:34       ` Robert Richter
     [not found]       ` <20151124093438.GA31343-vWBEXY7mpu582hYKe6nXyg@public.gmane.org>
2015-11-24  9:38         ` Ard Biesheuvel
2015-11-24  9:38           ` Ard Biesheuvel
2015-10-10 22:40   ` [PATCH v4 0/3] arm64: EFI stub isolation Matt Fleming
2015-10-10 22:40     ` Matt Fleming
     [not found]     ` <20151010224051.GK2723-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2015-10-12 15:30       ` Catalin Marinas
2015-10-12 15:30         ` Catalin Marinas

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=20151009091037.GC26278@arm.com \
    --to=will.deacon-5wv7dgnigg8@public.gmane.org \
    --cc=ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
    --cc=leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=ryabinin.a.a-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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.