[Bug 2082] New: Nested interrupts broken since inclusion of smp changes

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Fri Nov 30 10:36:15 UTC 2012


             Bug #: 2082
           Summary: Nested interrupts broken since inclusion of smp
    Classification: Unclassified
           Product: RTEMS
           Version: HEAD
          Platform: sparc
        OS/Version: RTEMS
            Status: NEW
          Severity: normal
          Priority: P3
         Component: bsps
        AssignedTo: joel.sherrill at oarcorp.com
        ReportedBy: Pierre.Willenbrock at dfki.de

Commit 0bd3f7e5d12fdbfb5bf4aa4a4169c67bfd92c988 changed
c/src/lib/libbsp/sparc/shared/irq_asm.S in a way that allows the current
register window of the interrupted code to be stored in its own stack frame,
instead of in the interrupt stack frame, as expected by simple_return.

To avoid this, interrupts must stay disabled until after the "mov %sp, %fp"
instruction is executed.

That instruction points the %sp of the interrupted code to the ISF, so a window
overflow puts the register contents there(at CPU_STACK_FRAME_*). The correct
%sp of the interrupted code is restored from the ISF_I6_OFFSET of the ISF
during simple_return.

In the non-smp case, simply exchanging the whole stack switch with the code
manipulating the psr works.

Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the bugs mailing list