Message ID | 20191018161033.261971-6-samitolvanen@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | add support for Clang's Shadow Call Stack | expand |
On Fri, Oct 18, 2019 at 9:11 AM Sami Tolvanen <samitolvanen@google.com> wrote: > > From: Ard Biesheuvel <ard.biesheuvel@linaro.org> > > Before we can start using register x18 for a special purpose (as permitted > by the AAPCS64 ABI), we need to tell the compiler that it is off limits > for general allocation. So tag it as 'fixed', yep, but... > and remove the mention from > the LL/SC compiler flag override. was that cut/dropped from this patch? > > Link: https://patchwork.kernel.org/patch/9836881/ ^ Looks like it. Maybe it doesn't matter, but if sending a V2, maybe the commit message to be updated? > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> If sending a V2 with the above cleaned up, you may also include: Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> I like how this does not conditionally reserve it based on the CONFIG for SCS. Hopefully later patches don't wrap it, but I haven't looked through all of them yet. > --- > arch/arm64/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile > index 2c0238ce0551..1c7b276bc7c5 100644 > --- a/arch/arm64/Makefile > +++ b/arch/arm64/Makefile > @@ -55,7 +55,7 @@ endif > > KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) \ > $(compat_vdso) $(cc_has_k_constraint) > -KBUILD_CFLAGS += -fno-asynchronous-unwind-tables > +KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -ffixed-x18 > KBUILD_CFLAGS += $(call cc-disable-warning, psabi) > KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) $(compat_vdso) > > -- > 2.23.0.866.gb869b98d4c-goog >
On Fri, Oct 18, 2019 at 10:32 AM 'Nick Desaulniers' via Clang Built Linux <clang-built-linux@googlegroups.com> wrote: > > and remove the mention from > > the LL/SC compiler flag override. > > was that cut/dropped from this patch? > > > > > Link: https://patchwork.kernel.org/patch/9836881/ > > ^ Looks like it. Maybe it doesn't matter, but if sending a V2, maybe > the commit message to be updated? True. The original patch is from 2017 and the relevant part of arm64/lib/Makefile no longer exists. I'll update this accordingly. > I like how this does not conditionally reserve it based on the CONFIG > for SCS. Hopefully later patches don't wrap it, but I haven't looked > through all of them yet. In a later patch x18 is only reserved with SCS. I'm fine with dropping that patch and reserving it always, but wouldn't mind hearing thoughts from the maintainers about this first. Sami
On Fri, 18 Oct 2019 at 21:00, Sami Tolvanen <samitolvanen@google.com> wrote: > > On Fri, Oct 18, 2019 at 10:32 AM 'Nick Desaulniers' via Clang Built > Linux <clang-built-linux@googlegroups.com> wrote: > > > and remove the mention from > > > the LL/SC compiler flag override. > > > > was that cut/dropped from this patch? > > > > > > > > Link: https://patchwork.kernel.org/patch/9836881/ > > > > ^ Looks like it. Maybe it doesn't matter, but if sending a V2, maybe > > the commit message to be updated? > > True. The original patch is from 2017 and the relevant part of > arm64/lib/Makefile no longer exists. I'll update this accordingly. > > > I like how this does not conditionally reserve it based on the CONFIG > > for SCS. Hopefully later patches don't wrap it, but I haven't looked > > through all of them yet. > > In a later patch x18 is only reserved with SCS. I'm fine with dropping > that patch and reserving it always, but wouldn't mind hearing thoughts > from the maintainers about this first. > Why would you reserve x18 if SCS is disabled? Given that this is a choice that is made at code generation time, there is no justification for always reserving it, since it will never be used for anything. (Of course, this applies to generated code only - .S files should simply be updated to avoid x18 altogether) Also, please combine this patch with the one that reserves it conditionally, no point in having both in the same series.
On Sun, Oct 20, 2019 at 11:12 PM Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote: > Also, please combine this patch with the one that reserves it > conditionally, no point in having both in the same series. Sure, I'll just drop this patch from v2 then and only reserve it with SCS. Sami
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 2c0238ce0551..1c7b276bc7c5 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -55,7 +55,7 @@ endif KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) \ $(compat_vdso) $(cc_has_k_constraint) -KBUILD_CFLAGS += -fno-asynchronous-unwind-tables +KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -ffixed-x18 KBUILD_CFLAGS += $(call cc-disable-warning, psabi) KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) $(compat_vdso)