Update #2555. --- cpukit/score/src/mpci.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/cpukit/score/src/mpci.c b/cpukit/score/src/mpci.c index c191bbe..3929d78 100644 --- a/cpukit/score/src/mpci.c +++ b/cpukit/score/src/mpci.c @@ -237,16 +237,19 @@ uint32_t _MPCI_Send_request_packet ( uint32_t timeout_code ) { - Thread_Control *executing = _Thread_Executing; + Per_CPU_Control *cpu_self; + Thread_Control *executing; - the_packet->source_tid = executing->Object.id; - the_packet->source_priority = executing->current_priority; - the_packet->to_convert = - ( the_packet->to_convert - sizeof(MP_packet_Prefix) ) / sizeof(uint32_t); + cpu_self = _Thread_Dispatch_disable(); + + executing = _Per_CPU_Get_executing( cpu_self ); - executing->Wait.id = the_packet->id; + the_packet->source_tid = executing->Object.id; + the_packet->source_priority = executing->current_priority; + the_packet->to_convert = + ( the_packet->to_convert - sizeof(MP_packet_Prefix) ) / sizeof(uint32_t); - _Thread_Disable_dispatch(); + executing->Wait.id = the_packet->id; (*_MPCI_table->send_packet)( destination, the_packet ); @@ -265,7 +268,7 @@ uint32_t _MPCI_Send_request_packet ( timeout_code ); - _Thread_Enable_dispatch(); + _Thread_Dispatch_enable( cpu_self ); return executing->Wait.return_code; } -- 1.8.4.5 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel