[PATCH 00/17] powerpc/64s: tidy and gasify exception handler code, round 1

Nicholas Piggin npiggin at gmail.com
Tue Feb 5 01:18:11 AEDT 2019


My previous big patch was received about as well as can be expected.
That is to say I'll assume everybody loved it, so we have to get there
a bit more incrementally.

This first round of patches was verified each patch (with several
configs) to not change any generated code, to make a small step to
improving things.

The end result is that head-64.h is only used for fixed section
layout code, exeption-64s.h is only used for some paca layout and
speculation control sequences, and exception-64s.S contains all the
actual code for interrupt handlers in a bit nicer form.

There is quite a way to go yet, but hopefully this is a improvement
already, and the good thing about generated code not changing with
this series is that backports are easy to verify. Once we start code
changes, we'll want to minimise the number of releases they are
spread over.

Thanks,
Nick

Nicholas Piggin (17):
  powerpc/64s/exception: fix some line wrap and semicolon
    inconsistencies in macros
  powerpc/64s/exception: remove H concatenation for EXC_HV variants
  powerpc/64s/exception: consolidate EXCEPTION_PROLOG_2 with _NORI
    variant
  powerpc/64s/exception: move and tidy EXCEPTION_PROLOG_2 variants
  powerpc/64s/exception: remove the "extra" macro parameter
  powerpc/64s/exception: consolidate maskable and non-maskable prologs
  powerpc/64s/exception: merge KVM handler and skip variants
  powerpc/64s/exception: KVM handler can set the HSRR trap bit
  powerpc/64s/exception: Make EXCEPTION_PROLOG_0 a gas macro for
    consistency with others
  powerpc/64s/exception: Move EXCEPTION_COMMON handler and return
    branches into callers
  powerpc/64s/exception: Move EXCEPTION_COMMON additions into callers
  powerpc/64s/exception: unwind exception-64s.h macros
  powerpc/64s/exception: move EXCEPTION_PROLOG_2* to a more logical
    place
  powerpc/64s/exception: remove STD_EXCEPTION_COMMON variants
  powerpc/64s/exception: move KVM related code together
  powerpc/64s/exception: move exception-64s.h code to exception-64s.S
    where it is used
  powerpc/64s/exception: move head-64.h code to exception-64s.S where it
    is used

 arch/powerpc/include/asm/exception-64s.h | 585 +-------------
 arch/powerpc/include/asm/head-64.h       | 204 +----
 arch/powerpc/kernel/exceptions-64s.S     | 932 ++++++++++++++++++++---
 3 files changed, 822 insertions(+), 899 deletions(-)

-- 
2.18.0



More information about the Linuxppc-dev mailing list