diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2012-10-18 18:10:06 +0200 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2012-11-23 11:14:25 +0100 |
commit | b01a37a749916ef1765e4d65dee8b43fde8407b8 (patch) | |
tree | 421be52e05d061fa356a64b9cbabbfee7ebc68c7 /arch/s390/kernel/entry64.S | |
parent | s390/mm,vmemmap: use 1MB frames for vmemmap (diff) | |
download | linux-b01a37a749916ef1765e4d65dee8b43fde8407b8.tar.xz linux-b01a37a749916ef1765e4d65dee8b43fde8407b8.zip |
s390/traps: preinitialize program check table
Preinitialize the program check table, so we can put it into the
read-only data section.
Also use only four byte entries for the table, since each program
check handler resides within the first 2GB. Therefore this reduces
the size of the table by 50% on 64 bit builds.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/entry64.S')
-rw-r--r-- | arch/s390/kernel/entry64.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 07d8de353984..e42842a3072b 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S @@ -429,9 +429,9 @@ ENTRY(pgm_check_handler) larl %r1,pgm_check_table llgh %r10,__PT_INT_CODE+2(%r11) nill %r10,0x007f - sll %r10,3 + sll %r10,2 je sysc_return - lg %r1,0(%r10,%r1) # load address of handler routine + lgf %r1,0(%r10,%r1) # load address of handler routine lgr %r2,%r11 # pass pointer to pt_regs basr %r14,%r1 # branch to interrupt-handler j sysc_return |