__handle_signal:
mov %l5, %o1
add %sp, PTREGS_OFF, %o0
mov %l0, %o2
call do_notify_resume 661: wrpr %g0, RTRAP_PSTATE, %pstate /* If userspace is using ADI, it could potentially pass *apointerwithversiontagembeddedinit.Tomaintain *theADIsecurity,wemustre-enablePSTATE.mcdebefore *wecontinueexecutioninthekernelforanotherthread.
*/
.section .sun_m7_1insn_patch, "ax"
.word661b
wrpr %g0, RTRAP_PSTATE|PSTATE_MCDE, %pstate
.previous
wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate
/* Signal delivery can modify pt_regs tstate, so we must *reloadit.
*/ ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1 sethi %hi(0xf << 20), %l4
and %l1, %l4, %l4
andn %l1, %l4, %l1
ba,pt %xcc, __handle_preemption_continue srl %l4, 20, %l4
/* When returning from a NMI (%pil==15) interrupt we want to *avoidrunningsoftirqs,doingIRQtracing,preempting,etc.
*/
.globl rtrap_nmi
rtrap_nmi: ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1 sethi %hi(0xf << 20), %l4
and %l1, %l4, %l4
andn %l1, %l4, %l1 srl %l4, 20, %l4
ba,pt %xcc, rtrap_no_irq_enable
nop /* Do not actually set the %pil here. We will do that *belowafterweclearPSTATE_IEinthe%pstateregister. *Ifwere-enableinterruptshere,wecanrecursedown *thehardirqstackpotentiallyendlessly,causinga *stackoverflow.
*/
.align64
.globl rtrap_irq, rtrap, irqsz_patchme, rtrap_xcall
rtrap_irq:
rtrap: /* mm/ultra.S:xcall_report_regs KNOWS about this load. */ ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
rtrap_xcall: sethi %hi(0xf << 20), %l4
and %l1, %l4, %l4
andn %l1, %l4, %l1 srl %l4, 20, %l4
#ifdef CONFIG_TRACE_IRQFLAGS
brnz,pn %l4, rtrap_no_irq_enable
nop
call trace_hardirqs_on
nop /* Do not actually set the %pil here. We will do that *belowafterweclearPSTATE_IEinthe%pstateregister. *Ifwere-enableinterruptshere,wecanrecursedown *thehardirqstackpotentiallyendlessly,causinga *stackoverflow. * *Itistemptingtoputthistestandtrace_hardirqs_on *callatthe'rt_continue'label,butthatwillnotwork *asthatpathhitsunconditionallyandwedonotwantto *executethisinNMIreturnpaths,forexample.
*/
#endif
rtrap_no_irq_enable:
andcc %l1, TSTATE_PRIV, %l3
bne,pn %icc, to_kernel
nop
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.