Loading arch/s390/boot/text_dma.S +6 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ ENTRY(_diag14_dma) lgfr %r2,%r5 BR_EX_DMA_r14 EX_TABLE_DMA(.Ldiag14_ex, .Ldiag14_fault) ENDPROC(_diag14_dma) /* * int _diag210_dma(struct diag210 *addr) Loading @@ -58,6 +59,7 @@ ENTRY(_diag210_dma) lgfr %r2,%r2 BR_EX_DMA_r14 EX_TABLE_DMA(.Ldiag210_ex, .Ldiag210_fault) ENDPROC(_diag210_dma) /* * int _diag26c_dma(void *req, void *resp, enum diag26c_sc subcode) Loading @@ -71,6 +73,7 @@ ENTRY(_diag26c_dma) lgfr %r2,%r5 BR_EX_DMA_r14 EX_TABLE_DMA(.Ldiag26c_ex, .Ldiag26c_ex) ENDPROC(_diag26c_dma) /* * void _diag0c_dma(struct hypfs_diag0c_entry *entry) Loading @@ -80,6 +83,7 @@ ENTRY(_diag0c_dma) diag %r2,%r2,0x0c sam64 BR_EX_DMA_r14 ENDPROC(_diag0c_dma) /* * void _swsusp_reset_dma(void) Loading @@ -96,6 +100,7 @@ restart_entry: sigp %r1,%r0,SIGP_SET_ARCHITECTURE sam64 BR_EX_DMA_r14 ENDPROC(_swsusp_reset_dma) /* * void _diag308_reset_dma(void) Loading Loading @@ -142,6 +147,7 @@ restart_part2: lpswe 0(%r4) .Lcontinue: BR_EX_DMA_r14 ENDPROC(_diag308_reset_dma) .section .dma.data,"aw",@progbits .align 8 Loading arch/s390/crypto/crc32be-vx.S +1 −0 Original line number Diff line number Diff line Loading @@ -207,5 +207,6 @@ ENTRY(crc32_be_vgfm_16) .Ldone: VLGVF %r2,%v2,3 BR_EX %r14 ENDPROC(crc32_be_vgfm_16) .previous arch/s390/crypto/crc32le-vx.S +4 −2 Original line number Diff line number Diff line Loading @@ -105,13 +105,14 @@ ENTRY(crc32_le_vgfm_16) larl %r5,.Lconstants_CRC_32_LE j crc32_le_vgfm_generic ENDPROC(crc32_le_vgfm_16) ENTRY(crc32c_le_vgfm_16) larl %r5,.Lconstants_CRC_32C_LE j crc32_le_vgfm_generic ENDPROC(crc32c_le_vgfm_16) crc32_le_vgfm_generic: ENTRY(crc32_le_vgfm_generic) /* Load CRC-32 constants */ VLM CONST_PERM_LE2BE,CONST_CRC_POLY,0,%r5 Loading Loading @@ -267,5 +268,6 @@ crc32_le_vgfm_generic: .Ldone: VLGVF %r2,%v2,2 BR_EX %r14 ENDPROC(crc32_le_vgfm_generic) .previous arch/s390/kernel/base.S +3 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ ENTRY(s390_base_mcck_handler) 1: la %r1,4095 lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1) lpswe __LC_MCK_OLD_PSW ENDPROC(s390_base_mcck_handler) .section .bss .align 8 Loading @@ -48,6 +49,7 @@ ENTRY(s390_base_ext_handler) 1: lmg %r0,%r15,__LC_SAVE_AREA_ASYNC ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit lpswe __LC_EXT_OLD_PSW ENDPROC(s390_base_ext_handler) .section .bss .align 8 Loading @@ -68,6 +70,7 @@ ENTRY(s390_base_pgm_handler) lmg %r0,%r15,__LC_SAVE_AREA_SYNC lpswe __LC_PGM_OLD_PSW 1: lpswe disabled_wait_psw-0b(%r13) ENDPROC(s390_base_pgm_handler) .align 8 disabled_wait_psw: Loading arch/s390/kernel/entry.S +22 −2 Original line number Diff line number Diff line Loading @@ -224,6 +224,7 @@ ENTRY(__bpon) .globl __bpon BPON BR_EX %r14 ENDPROC(__bpon) /* * Scheduler resume function, called by switch_to Loading @@ -248,6 +249,7 @@ ENTRY(__switch_to) lmg %r6,%r15,__SF_GPRS(%r15) # load gprs of next task ALTERNATIVE "", ".insn s,0xb2800000,_LPP_OFFSET", 40 BR_EX %r14 ENDPROC(__switch_to) .L__critical_start: Loading Loading @@ -324,6 +326,7 @@ sie_exit: EX_TABLE(.Lrewind_pad4,.Lsie_fault) EX_TABLE(.Lrewind_pad2,.Lsie_fault) EX_TABLE(sie_exit,.Lsie_fault) ENDPROC(sie64a) EXPORT_SYMBOL(sie64a) EXPORT_SYMBOL(sie_exit) #endif Loading Loading @@ -570,6 +573,7 @@ ENTRY(system_call) lgr %r2,%r11 # pass pointer to pt_regs larl %r14,.Lsysc_return jg do_syscall_trace_exit ENDPROC(system_call) # # a new process exits the kernel with ret_from_fork Loading @@ -584,10 +588,16 @@ ENTRY(ret_from_fork) jne .Lsysc_tracenogo # it's a kernel thread lmg %r9,%r10,__PT_R9(%r11) # load gprs la %r2,0(%r10) BASR_EX %r14,%r9 j .Lsysc_tracenogo ENDPROC(ret_from_fork) ENTRY(kernel_thread_starter) la %r2,0(%r10) BASR_EX %r14,%r9 j .Lsysc_tracenogo ENDPROC(kernel_thread_starter) /* * Program check handler routine Loading Loading @@ -698,6 +708,7 @@ ENTRY(pgm_check_handler) stg %r14,__LC_RETURN_PSW+8 lghi %r14,_PIF_SYSCALL | _PIF_PER_TRAP lpswe __LC_RETURN_PSW # branch to .Lsysc_per and enable irqs ENDPROC(pgm_check_handler) /* * IO interrupt handler routine Loading Loading @@ -926,6 +937,7 @@ ENTRY(io_int_handler) ssm __LC_PGM_NEW_PSW # disable I/O and ext. interrupts TRACE_IRQS_OFF j .Lio_return ENDPROC(io_int_handler) /* * External interrupt handler routine Loading Loading @@ -965,6 +977,7 @@ ENTRY(ext_int_handler) lghi %r3,EXT_INTERRUPT brasl %r14,do_IRQ j .Lio_return ENDPROC(ext_int_handler) /* * Load idle PSW. The second "half" of this function is in .Lcleanup_idle. Loading @@ -989,6 +1002,7 @@ ENTRY(psw_idle) lpswe __SF_EMPTY(%r15) BR_EX %r14 .Lpsw_idle_end: ENDPROC(psw_idle) /* * Store floating-point controls and floating-point or vector register Loading Loading @@ -1031,6 +1045,7 @@ ENTRY(save_fpu_regs) .Lsave_fpu_regs_exit: BR_EX %r14 .Lsave_fpu_regs_end: ENDPROC(save_fpu_regs) EXPORT_SYMBOL(save_fpu_regs) /* Loading Loading @@ -1077,6 +1092,7 @@ load_fpu_regs: .Lload_fpu_regs_exit: BR_EX %r14 .Lload_fpu_regs_end: ENDPROC(load_fpu_regs) .L__critical_end: Loading Loading @@ -1206,6 +1222,7 @@ ENTRY(mcck_int_handler) lg %r15,__LC_NODAT_STACK la %r11,STACK_FRAME_OVERHEAD(%r15) j .Lmcck_skip ENDPROC(mcck_int_handler) # # PSW restart interrupt handler Loading @@ -1232,6 +1249,7 @@ ENTRY(restart_int_handler) 2: sigp %r4,%r3,SIGP_STOP # sigp stop to current cpu brc 2,2b 3: j 3b ENDPROC(restart_int_handler) .section .kprobes.text, "ax" Loading @@ -1241,7 +1259,7 @@ ENTRY(restart_int_handler) * No need to properly save the registers, we are going to panic anyway. * Setup a pt_regs so that show_trace can provide a good call trace. */ stack_overflow: ENTRY(stack_overflow) lg %r15,__LC_NODAT_STACK # change to panic stack la %r11,STACK_FRAME_OVERHEAD(%r15) stmg %r0,%r7,__PT_R0(%r11) Loading @@ -1251,9 +1269,10 @@ stack_overflow: xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) lgr %r2,%r11 # pass pointer to pt_regs jg kernel_stack_overflow ENDPROC(stack_overflow) #endif cleanup_critical: ENTRY(cleanup_critical) #if IS_ENABLED(CONFIG_KVM) clg %r9,BASED(.Lcleanup_table_sie) # .Lsie_gmap jl 0f Loading Loading @@ -1289,6 +1308,7 @@ cleanup_critical: clg %r9,BASED(.Lcleanup_table+104) # .Lload_fpu_regs_end jl .Lcleanup_load_fpu_regs 0: BR_EX %r14,%r11 ENDPROC(cleanup_critical) .align 8 .Lcleanup_table: Loading Loading
arch/s390/boot/text_dma.S +6 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ ENTRY(_diag14_dma) lgfr %r2,%r5 BR_EX_DMA_r14 EX_TABLE_DMA(.Ldiag14_ex, .Ldiag14_fault) ENDPROC(_diag14_dma) /* * int _diag210_dma(struct diag210 *addr) Loading @@ -58,6 +59,7 @@ ENTRY(_diag210_dma) lgfr %r2,%r2 BR_EX_DMA_r14 EX_TABLE_DMA(.Ldiag210_ex, .Ldiag210_fault) ENDPROC(_diag210_dma) /* * int _diag26c_dma(void *req, void *resp, enum diag26c_sc subcode) Loading @@ -71,6 +73,7 @@ ENTRY(_diag26c_dma) lgfr %r2,%r5 BR_EX_DMA_r14 EX_TABLE_DMA(.Ldiag26c_ex, .Ldiag26c_ex) ENDPROC(_diag26c_dma) /* * void _diag0c_dma(struct hypfs_diag0c_entry *entry) Loading @@ -80,6 +83,7 @@ ENTRY(_diag0c_dma) diag %r2,%r2,0x0c sam64 BR_EX_DMA_r14 ENDPROC(_diag0c_dma) /* * void _swsusp_reset_dma(void) Loading @@ -96,6 +100,7 @@ restart_entry: sigp %r1,%r0,SIGP_SET_ARCHITECTURE sam64 BR_EX_DMA_r14 ENDPROC(_swsusp_reset_dma) /* * void _diag308_reset_dma(void) Loading Loading @@ -142,6 +147,7 @@ restart_part2: lpswe 0(%r4) .Lcontinue: BR_EX_DMA_r14 ENDPROC(_diag308_reset_dma) .section .dma.data,"aw",@progbits .align 8 Loading
arch/s390/crypto/crc32be-vx.S +1 −0 Original line number Diff line number Diff line Loading @@ -207,5 +207,6 @@ ENTRY(crc32_be_vgfm_16) .Ldone: VLGVF %r2,%v2,3 BR_EX %r14 ENDPROC(crc32_be_vgfm_16) .previous
arch/s390/crypto/crc32le-vx.S +4 −2 Original line number Diff line number Diff line Loading @@ -105,13 +105,14 @@ ENTRY(crc32_le_vgfm_16) larl %r5,.Lconstants_CRC_32_LE j crc32_le_vgfm_generic ENDPROC(crc32_le_vgfm_16) ENTRY(crc32c_le_vgfm_16) larl %r5,.Lconstants_CRC_32C_LE j crc32_le_vgfm_generic ENDPROC(crc32c_le_vgfm_16) crc32_le_vgfm_generic: ENTRY(crc32_le_vgfm_generic) /* Load CRC-32 constants */ VLM CONST_PERM_LE2BE,CONST_CRC_POLY,0,%r5 Loading Loading @@ -267,5 +268,6 @@ crc32_le_vgfm_generic: .Ldone: VLGVF %r2,%v2,2 BR_EX %r14 ENDPROC(crc32_le_vgfm_generic) .previous
arch/s390/kernel/base.S +3 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ ENTRY(s390_base_mcck_handler) 1: la %r1,4095 lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1) lpswe __LC_MCK_OLD_PSW ENDPROC(s390_base_mcck_handler) .section .bss .align 8 Loading @@ -48,6 +49,7 @@ ENTRY(s390_base_ext_handler) 1: lmg %r0,%r15,__LC_SAVE_AREA_ASYNC ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit lpswe __LC_EXT_OLD_PSW ENDPROC(s390_base_ext_handler) .section .bss .align 8 Loading @@ -68,6 +70,7 @@ ENTRY(s390_base_pgm_handler) lmg %r0,%r15,__LC_SAVE_AREA_SYNC lpswe __LC_PGM_OLD_PSW 1: lpswe disabled_wait_psw-0b(%r13) ENDPROC(s390_base_pgm_handler) .align 8 disabled_wait_psw: Loading
arch/s390/kernel/entry.S +22 −2 Original line number Diff line number Diff line Loading @@ -224,6 +224,7 @@ ENTRY(__bpon) .globl __bpon BPON BR_EX %r14 ENDPROC(__bpon) /* * Scheduler resume function, called by switch_to Loading @@ -248,6 +249,7 @@ ENTRY(__switch_to) lmg %r6,%r15,__SF_GPRS(%r15) # load gprs of next task ALTERNATIVE "", ".insn s,0xb2800000,_LPP_OFFSET", 40 BR_EX %r14 ENDPROC(__switch_to) .L__critical_start: Loading Loading @@ -324,6 +326,7 @@ sie_exit: EX_TABLE(.Lrewind_pad4,.Lsie_fault) EX_TABLE(.Lrewind_pad2,.Lsie_fault) EX_TABLE(sie_exit,.Lsie_fault) ENDPROC(sie64a) EXPORT_SYMBOL(sie64a) EXPORT_SYMBOL(sie_exit) #endif Loading Loading @@ -570,6 +573,7 @@ ENTRY(system_call) lgr %r2,%r11 # pass pointer to pt_regs larl %r14,.Lsysc_return jg do_syscall_trace_exit ENDPROC(system_call) # # a new process exits the kernel with ret_from_fork Loading @@ -584,10 +588,16 @@ ENTRY(ret_from_fork) jne .Lsysc_tracenogo # it's a kernel thread lmg %r9,%r10,__PT_R9(%r11) # load gprs la %r2,0(%r10) BASR_EX %r14,%r9 j .Lsysc_tracenogo ENDPROC(ret_from_fork) ENTRY(kernel_thread_starter) la %r2,0(%r10) BASR_EX %r14,%r9 j .Lsysc_tracenogo ENDPROC(kernel_thread_starter) /* * Program check handler routine Loading Loading @@ -698,6 +708,7 @@ ENTRY(pgm_check_handler) stg %r14,__LC_RETURN_PSW+8 lghi %r14,_PIF_SYSCALL | _PIF_PER_TRAP lpswe __LC_RETURN_PSW # branch to .Lsysc_per and enable irqs ENDPROC(pgm_check_handler) /* * IO interrupt handler routine Loading Loading @@ -926,6 +937,7 @@ ENTRY(io_int_handler) ssm __LC_PGM_NEW_PSW # disable I/O and ext. interrupts TRACE_IRQS_OFF j .Lio_return ENDPROC(io_int_handler) /* * External interrupt handler routine Loading Loading @@ -965,6 +977,7 @@ ENTRY(ext_int_handler) lghi %r3,EXT_INTERRUPT brasl %r14,do_IRQ j .Lio_return ENDPROC(ext_int_handler) /* * Load idle PSW. The second "half" of this function is in .Lcleanup_idle. Loading @@ -989,6 +1002,7 @@ ENTRY(psw_idle) lpswe __SF_EMPTY(%r15) BR_EX %r14 .Lpsw_idle_end: ENDPROC(psw_idle) /* * Store floating-point controls and floating-point or vector register Loading Loading @@ -1031,6 +1045,7 @@ ENTRY(save_fpu_regs) .Lsave_fpu_regs_exit: BR_EX %r14 .Lsave_fpu_regs_end: ENDPROC(save_fpu_regs) EXPORT_SYMBOL(save_fpu_regs) /* Loading Loading @@ -1077,6 +1092,7 @@ load_fpu_regs: .Lload_fpu_regs_exit: BR_EX %r14 .Lload_fpu_regs_end: ENDPROC(load_fpu_regs) .L__critical_end: Loading Loading @@ -1206,6 +1222,7 @@ ENTRY(mcck_int_handler) lg %r15,__LC_NODAT_STACK la %r11,STACK_FRAME_OVERHEAD(%r15) j .Lmcck_skip ENDPROC(mcck_int_handler) # # PSW restart interrupt handler Loading @@ -1232,6 +1249,7 @@ ENTRY(restart_int_handler) 2: sigp %r4,%r3,SIGP_STOP # sigp stop to current cpu brc 2,2b 3: j 3b ENDPROC(restart_int_handler) .section .kprobes.text, "ax" Loading @@ -1241,7 +1259,7 @@ ENTRY(restart_int_handler) * No need to properly save the registers, we are going to panic anyway. * Setup a pt_regs so that show_trace can provide a good call trace. */ stack_overflow: ENTRY(stack_overflow) lg %r15,__LC_NODAT_STACK # change to panic stack la %r11,STACK_FRAME_OVERHEAD(%r15) stmg %r0,%r7,__PT_R0(%r11) Loading @@ -1251,9 +1269,10 @@ stack_overflow: xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) lgr %r2,%r11 # pass pointer to pt_regs jg kernel_stack_overflow ENDPROC(stack_overflow) #endif cleanup_critical: ENTRY(cleanup_critical) #if IS_ENABLED(CONFIG_KVM) clg %r9,BASED(.Lcleanup_table_sie) # .Lsie_gmap jl 0f Loading Loading @@ -1289,6 +1308,7 @@ cleanup_critical: clg %r9,BASED(.Lcleanup_table+104) # .Lload_fpu_regs_end jl .Lcleanup_load_fpu_regs 0: BR_EX %r14,%r11 ENDPROC(cleanup_critical) .align 8 .Lcleanup_table: Loading