[Bug 1257] New: missing compiler memory barrier when using _CPU_ISR_Disable()/_CPU_ISR_Enable()

rtems-bugs at rtems.org rtems-bugs at rtems.org
Sat Sep 8 05:31:16 UTC 2007


http://www.rtems.org/bugzilla/show_bug.cgi?id=1257

           Summary: missing compiler memory barrier when using
                    _CPU_ISR_Disable()/_CPU_ISR_Enable()
           Product: RTEMS
           Version: 4.7
          Platform: All
        OS/Version: RTEMS
            Status: NEW
          Severity: major
          Priority: P4
         Component: bsps
        AssignedTo: joel.sherrill at oarcorp.com
        ReportedBy: strauman at slac.stanford.edu


_CPU_ISR_Disable()/_CPU_ISR_Enable() are still widely used in libbsp, libcpu
and in a few cases even in cpukit.
However, using the _CPU_ISR_xxx macros directly circumvents the compiler memory
barrier that has been added to _ISR_Disable()/_ISR_Enable() recently.

I suggest that direct use of _CPU_ISR_Disable()/_CPU_ISR_Enable() be
eliminated and replaced by _ISR_Disable()/_ISR_Enable() to ensure presence
of the critical barrier. Where acceptable, the RTEMS API should be used
(rtems_interrupt_disable/rtems_interrupt_enable).

(Thanks to Pavel for bringing to our attention)


-- 
Configure bugmail: http://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the bugs mailing list