All of lore.kernel.org
 help / color / mirror / Atom feed
From: jszhang@marvell.com (Jisheng Zhang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm64: errata: Pass --fix-cortex-a53-843419 to ld if workaround enabled
Date: Tue, 23 Aug 2016 09:47:47 +0800	[thread overview]
Message-ID: <20160823094747.149be60a@xhacker> (raw)
In-Reply-To: <CAKv+Gu9Nbz27CkKoAi2-qtLGYYDOcWSZ_Y=4gCXLr8xVBqcDuQ@mail.gmail.com>

On Mon, 22 Aug 2016 15:53:07 +0200 Ard Biesheuvel  wrote:

> On 22 August 2016 at 15:48, Will Deacon wrote:
> > Cortex-A53 erratum 843419 is worked around by the linker, although it is
> > a configure-time option to GCC as to whether ld is actually asked to
> > apply the workaround or not.
> >
> > This patch ensures that we pass --fix-cortex-a53-843419 to the linker
> > when both CONFIG_ARM64_ERRATUM_843419=y and the linker supports the
> > option.
> >
> > Signed-off-by: Will Deacon <will.deacon@arm.com>  
> 
> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Thanks for this patch. I also suspected the errata isn't really work arounded
before and queried this in June ;)

http://lists.infradead.org/pipermail/linux-arm-kernel/2016-June/434057.html

Thanks,
Jisheng

> 
> > ---
> >  arch/arm64/Kconfig  | 15 +++++----------
> >  arch/arm64/Makefile |  9 +++++++++
> >  2 files changed, 14 insertions(+), 10 deletions(-)
> >
> > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> > index bc3f00f586f1..e4b7d10e8e1c 100644
> > --- a/arch/arm64/Kconfig
> > +++ b/arch/arm64/Kconfig
> > @@ -415,18 +415,13 @@ config ARM64_ERRATUM_845719
> >
> >  config ARM64_ERRATUM_843419
> >         bool "Cortex-A53: 843419: A load or store might access an incorrect address"
> > -       depends on MODULES
> >         default y
> > -       select ARM64_MODULE_CMODEL_LARGE
> > +       select ARM64_MODULE_CMODEL_LARGE if MODULES
> >         help
> > -         This option builds kernel modules using the large memory model in
> > -         order to avoid the use of the ADRP instruction, which can cause
> > -         a subsequent memory access to use an incorrect address on Cortex-A53
> > -         parts up to r0p4.
> > -
> > -         Note that the kernel itself must be linked with a version of ld
> > -         which fixes potentially affected ADRP instructions through the
> > -         use of veneers.
> > +         This option links the kernel with '--fix-cortex-a53-843419' and
> > +         builds modules using the large memory model in order to avoid the use
> > +         of the ADRP instruction, which can cause a subsequent memory access
> > +         to use an incorrect address on Cortex-A53 parts up to r0p4.
> >
> >           If unsure, say Y.
> >
> > diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
> > index 5b54f8c021d8..c5ad4957e7ee 100644
> > --- a/arch/arm64/Makefile
> > +++ b/arch/arm64/Makefile
> > @@ -18,6 +18,15 @@ ifneq ($(CONFIG_RELOCATABLE),)
> >  LDFLAGS_vmlinux                += -pie -Bsymbolic
> >  endif
> >
> > +ifeq ($(CONFIG_ARM64_ERRATUM_843419),y)
> > +ld-843419-workaround := $(call ld-option, --fix-cortex-a53-843419)
> > +  ifeq ($(ld-843419-workaround),)
> > +$(warning ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum)
> > +  else
> > +LDFLAGS_vmlinux        += --fix-cortex-a53-843419
> > +  endif
> > +endif
> > +
> >  KBUILD_DEFCONFIG := defconfig
> >
> >  # Check for binutils support for specific extensions
> > --
> > 2.1.4
> >  
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

      reply	other threads:[~2016-08-23  1:47 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-22 13:48 [PATCH] arm64: errata: Pass --fix-cortex-a53-843419 to ld if workaround enabled Will Deacon
2016-08-22 13:53 ` Ard Biesheuvel
2016-08-23  1:47   ` Jisheng Zhang [this message]

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=20160823094747.149be60a@xhacker \
    --to=jszhang@marvell.com \
    --cc=linux-arm-kernel@lists.infradead.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.