[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XenPPC] [pushed][ppc] Must check softirq conditions on return from hcall.
This patch simply repeats the code sequence for the hdec handler. Some Janitorial work on this file will be necessary soon. -JX On Mar 29, 2006, at 12:34 PM, jimix@xxxxxxxxxxxxxx wrote: changeset: 9667:910d71f2bf1b tag: tip user: jimix@xxxxxxxxxxxxxxxxxxxxx date: Wed Mar 29 12:33:40 2006 -0500 summary: [ppc] Must check softirq conditions on return from hcall. diff -r 06bc81089a95 -r 910d71f2bf1b xen/arch/ppc/ppc64/exceptions.S --- a/xen/arch/ppc/ppc64/exceptions.S Wed Mar 29 12:32:25 2006 -0500 +++ b/xen/arch/ppc/ppc64/exceptions.S Wed Mar 29 12:33:40 2006 -0500 @@ -365,9 +365,33 @@ ex_hcall_continued:mr r3, r1 /* pass pointer to cpu_user_regs */ subi r1, r1, STACK_FRAME_OVERHEAD /* make a "caller" stack frame */CALL_CFUNC r12 -+ /* test for pending softirqs, and loop until there are no more. */+hcall_test_all_events: + ld r3, PAREA_vcpu(r13) + lwz r3, VCPU_processor(r3) + LOADADDR r4, irq_stat + sldi r3, r3, IRQSTAT_shift + add r4, r3, r4 + ld r5, IRQSTAT_pending(r4) + cmpldi r5, 0 + beq hcall_out ++ /* we could use nonvolatile GPRs across do_softirq calls, but those are+ * volatile across exceptions :( */ + LOADADDR r6, ppc_do_softirq+ mfmsr r3 /* we pass this MSR to _do_softirq so + * it can give it to us back without+ * having to save it */ + ori r8, r3, MSR_EE + + mtmsrd r8 /* enable interrupts */+ CALL_CFUNC r6 /* process softirqs returns r3 */+ mtmsrd r3 /* disable interrupts */ + b hcall_test_all_events /* look for more */ +hcall_out:addi r1, r1, STACK_FRAME_OVERHEAD /* restore stack to cpu_user_regs */b fast_resume + ex_dec_continued: EXCEPTION_SAVE_STATE r1 _______________________________________________ Xen-ppc-devel mailing list Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ppc-devel _______________________________________________ Xen-ppc-devel mailing list Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ppc-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |