1. 06 Jul, 2018 1 commit
    • Philipp Rudo's avatar
      s390/purgatory: Fix crash with expoline enabled · ad03b821
      Philipp Rudo authored
      When the kernel is built with CONFIG_EXPOLINE=y and a compiler with
      indirect branch mitigation enabled the purgatory crashes. The reason for
      that is that the macros defined for expoline are used in mem.S. These
      macros define new sections (.text.__s390x_indirect_*) which are marked
      executable. Due to the missing linker script those sections are linked to
      address 0, just as the .text section. In combination with the entry point
      also being at address 0 this causes the purgatory load code
      (kernel/kexec_file.c: kexec_purgatory_setup_sechdrs) to update the entry
      point twice. Thus the old kernel jumps to some 'random' address causing the
      crash.
      
      To fix this turn off expolines for the purgatory. There is no problem with
      this in this case due to the fact that the purgatory only runs once and the
      tlb is purged (diag 308) in the end.
      
      Fixes: 840798a1 ("s390/kexec_file: Add purgatory")
      Cc: <stable@vger.kernel.org> # 4.17
      Signed-off-by: default avatarPhilipp Rudo <prudo@linux.ibm.com>
      Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      ad03b821
  2. 04 Jul, 2018 3 commits
  3. 02 Jul, 2018 26 commits
  4. 25 Jun, 2018 10 commits