linux/arch/s390/kernel/base.S
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 *  arch/s390/kernel/base.S
   4 *
   5 *    Copyright IBM Corp. 2006, 2007
   6 *    Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
   7 *               Michael Holzheu <holzheu@de.ibm.com>
   8 */
   9
  10#include <linux/linkage.h>
  11#include <asm/asm-offsets.h>
  12#include <asm/nospec-insn.h>
  13#include <asm/ptrace.h>
  14
  15        GEN_BR_THUNK %r9
  16        GEN_BR_THUNK %r14
  17
  18ENTRY(s390_base_pgm_handler)
  19        stmg    %r0,%r15,__LC_SAVE_AREA_SYNC
  20        basr    %r13,0
  210:      aghi    %r15,-STACK_FRAME_OVERHEAD
  22        larl    %r1,s390_base_pgm_handler_fn
  23        lg      %r9,0(%r1)
  24        ltgr    %r9,%r9
  25        jz      1f
  26        BASR_EX %r14,%r9
  27        lmg     %r0,%r15,__LC_SAVE_AREA_SYNC
  28        lpswe   __LC_PGM_OLD_PSW
  291:      lpswe   disabled_wait_psw-0b(%r13)
  30ENDPROC(s390_base_pgm_handler)
  31
  32        .align  8
  33disabled_wait_psw:
  34        .quad   0x0002000180000000,0x0000000000000000 + s390_base_pgm_handler
  35
  36        .section .bss
  37        .align 8
  38        .globl s390_base_pgm_handler_fn
  39s390_base_pgm_handler_fn:
  40        .quad   0
  41        .previous
  42