From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 5/5] arm64/kernel: enable A53 erratum #8434319 handling at runtime
Date: Thu, 8 Mar 2018 13:59:35 +0000 [thread overview]
Message-ID: <20180308135935.GA9573@arm.com> (raw)
In-Reply-To: <CAKv+Gu9a8pWdhN4PjN2t0dSpiocQfWhvr_jioxmhU2iJRSfV7g@mail.gmail.com>
On Thu, Mar 08, 2018 at 01:54:26PM +0000, Ard Biesheuvel wrote:
> On 8 March 2018 at 13:49, Mark Rutland <mark.rutland@arm.com> wrote:
> > On Thu, Mar 08, 2018 at 01:46:34PM +0000, Ard Biesheuvel wrote:
> >> On 8 March 2018 at 13:45, Will Deacon <will.deacon@arm.com> wrote:
> >> > On Tue, Mar 06, 2018 at 05:15:35PM +0000, Ard Biesheuvel wrote:
> >> >> Omit patching of ADRP instruction at module load time if the current
> >> >> CPUs are not susceptible to the erratum.
> >> >
> >> > [...]
> >> >
> >> >> diff --git a/arch/arm64/kernel/module-plts.c b/arch/arm64/kernel/module-plts.c
> >> >> index 534bf1d47119..1a583ccace00 100644
> >> >> --- a/arch/arm64/kernel/module-plts.c
> >> >> +++ b/arch/arm64/kernel/module-plts.c
> >> >> @@ -158,7 +158,8 @@ static unsigned int count_plts(Elf64_Sym *syms, Elf64_Rela *rela, int num,
> >> >> break;
> >> >> case R_AARCH64_ADR_PREL_PG_HI21_NC:
> >> >> case R_AARCH64_ADR_PREL_PG_HI21:
> >> >> - if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_843419))
> >> >> + if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_843419) ||
> >> >> + !cpus_have_const_cap(ARM64_WORKAROUND_843419))
> >> >> break;
> >> >>
> >> >> /*
> >> >> diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c
> >> >> index 89217704944e..47b40aaa1a5d 100644
> >> >> --- a/arch/arm64/kernel/module.c
> >> >> +++ b/arch/arm64/kernel/module.c
> >> >> @@ -201,6 +201,7 @@ static int reloc_insn_imm(enum aarch64_reloc_op op, __le32 *place, u64 val,
> >> >> static int reloc_insn_adrp(struct module *mod, __le32 *place, u64 val)
> >> >> {
> >> >> if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_843419) ||
> >> >> + !cpus_have_const_cap(ARM64_WORKAROUND_843419) ||
> >> >
> >> > Mind if I drop the IS_ENABLED check here and in the hunk above? The
> >> > const_cap check along should be sufficient, no?
> >> >
> >>
> >> Without the IS_ENABLED() check, the code will always be present in the
> >> object file.
> >>
> >> I have no strong preference either way, though.
> >
> > As with other case, perhaps fold this into a helper in
> > <asm/cpufeature.h> ?
> >
> > static inline bool system_needs_arm64_workaround_843419()
> > {
> > return (IS_ENABLED(CONFIG_ARM64_ERRATUM_843419) &&
> > cpus_have_const_cap(ARM64_WORKAROUND_843419))
> > }
> >
> > ... then use the inverse in the cases above.
> >
>
> I'm fine with adding a helper, but
> 'system_needs_arm64_workaround_843419' is a bit misleading, given that
> it returns false if the system needs it but support is compiled out.
FWIW, I'm fine with the code as it is.
Will
prev parent reply other threads:[~2018-03-08 13:59 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-06 17:15 [PATCH v4 0/5] arm64/kernel: get rid of GCC large model code Ard Biesheuvel
2018-03-06 17:15 ` [PATCH v4 1/5] arm64: module: don't BUG when exceeding preallocated PLT count Ard Biesheuvel
2018-03-06 17:15 ` [PATCH v4 2/5] arm64/kernel: kaslr: reduce module randomization range to 4 GB Ard Biesheuvel
2018-03-06 17:15 ` [PATCH v4 3/5] arm64/kernel: don't ban ADRP to work around Cortex-A53 erratum #843419 Ard Biesheuvel
2018-03-06 17:15 ` [PATCH v4 4/5] arm64/errata: add REVIDR handling to framework Ard Biesheuvel
2018-03-06 17:15 ` [PATCH v4 5/5] arm64/kernel: enable A53 erratum #8434319 handling at runtime Ard Biesheuvel
2018-03-08 13:45 ` Will Deacon
2018-03-08 13:46 ` Ard Biesheuvel
2018-03-08 13:47 ` Ard Biesheuvel
2018-03-08 13:48 ` Will Deacon
2018-03-08 13:49 ` Mark Rutland
2018-03-08 13:54 ` Ard Biesheuvel
2018-03-08 13:59 ` Will Deacon [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=20180308135935.GA9573@arm.com \
--to=will.deacon@arm.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.