#253 closed defect (fixed)

Current CVS version dies in initialization -- rtems_region_create

Reported by: Eric Norum Owned by: Joel Sherrill
Priority: highest Milestone: 2
Component: score Version: unknown
Severity: critical Keywords:
Cc: bugs@… Blocked By:
Blocking:

Description

rtems_region_create calls _RTEMS_Lock_allocator which calls _CORE_mutex_Seize_interrupt_trylock which dies because it stuffs a garbage value into the PSW.

_RTEMS_Lock_allocator invokes _API_Mutex_Lock

#define _API_Mutex_Lock( _the_mutex ) \

do { \

ISR_Level _level; \
_CORE_mutex_Seize( \

&(_the_mutex)->Mutex, (_the_mutex)->Object.id, TRUE, 0, (_level) ); \

} while (0)

Notice how _level is never initialized to the current PSW? This causes big problems when _CORE_mutex_Seize_interrupt_trylock attempt to put that value back into the PSW.....

Release:
CVS

Change History (1)

comment:1 Changed on 07/23/02 at 21:49:24 by Joel Sherrill

Status: assignedclosed

State-Changed-From-To: open->closed
State-Changed-Why: Description is dead on. Interestingly only impacts some

ports -- those which directly use _level in a status
register.


Fix was accidentally applied only to the old (non-cpukit) side of
the tree.


http://www.oarcorp.com/cgi-bin/cvsweb.cgi/rtems/c/src/exec/score/include/rtems/score/Attic/apimutex.h.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&f=u

Note: See TracTickets for help on using tickets.