[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