aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/entry64.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/entry64.S')
-rw-r--r--arch/s390/kernel/entry64.S16
1 files changed, 12 insertions, 4 deletions
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index 4c17eece707e..bc5864c5148b 100644
--- a/arch/s390/kernel/entry64.S
+++ b/arch/s390/kernel/entry64.S
@@ -460,10 +460,18 @@ io_skip:
460 stmg %r0,%r7,__PT_R0(%r11) 460 stmg %r0,%r7,__PT_R0(%r11)
461 mvc __PT_R8(64,%r11),__LC_SAVE_AREA_ASYNC 461 mvc __PT_R8(64,%r11),__LC_SAVE_AREA_ASYNC
462 stmg %r8,%r9,__PT_PSW(%r11) 462 stmg %r8,%r9,__PT_PSW(%r11)
463 mvc __PT_INT_CODE(12,%r11),__LC_SUBCHANNEL_ID
463 TRACE_IRQS_OFF 464 TRACE_IRQS_OFF
464 xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) 465 xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
466io_loop:
465 lgr %r2,%r11 # pass pointer to pt_regs 467 lgr %r2,%r11 # pass pointer to pt_regs
466 brasl %r14,do_IRQ 468 brasl %r14,do_IRQ
469 tm __LC_MACHINE_FLAGS+6,0x10 # MACHINE_FLAG_LPAR
470 jz io_return
471 tpi 0
472 jz io_return
473 mvc __PT_INT_CODE(12,%r11),__LC_SUBCHANNEL_ID
474 j io_loop
467io_return: 475io_return:
468 LOCKDEP_SYS_EXIT 476 LOCKDEP_SYS_EXIT
469 TRACE_IRQS_ON 477 TRACE_IRQS_ON
@@ -605,13 +613,13 @@ ext_skip:
605 stmg %r0,%r7,__PT_R0(%r11) 613 stmg %r0,%r7,__PT_R0(%r11)
606 mvc __PT_R8(64,%r11),__LC_SAVE_AREA_ASYNC 614 mvc __PT_R8(64,%r11),__LC_SAVE_AREA_ASYNC
607 stmg %r8,%r9,__PT_PSW(%r11) 615 stmg %r8,%r9,__PT_PSW(%r11)
616 lghi %r1,__LC_EXT_PARAMS2
617 mvc __PT_INT_CODE(4,%r11),__LC_EXT_CPU_ADDR
618 mvc __PT_INT_PARM(4,%r11),__LC_EXT_PARAMS
619 mvc __PT_INT_PARM_LONG(8,%r11),0(%r1)
608 TRACE_IRQS_OFF 620 TRACE_IRQS_OFF
609 xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) 621 xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
610 lghi %r1,4096
611 lgr %r2,%r11 # pass pointer to pt_regs 622 lgr %r2,%r11 # pass pointer to pt_regs
612 llgf %r3,__LC_EXT_CPU_ADDR # get cpu address + interruption code
613 llgf %r4,__LC_EXT_PARAMS # get external parameter
614 lg %r5,__LC_EXT_PARAMS2-4096(%r1) # get 64 bit external parameter
615 brasl %r14,do_extint 623 brasl %r14,do_extint
616 j io_return 624 j io_return
617 625