diff --git a/arch/x86/scc/icc.c b/arch/x86/scc/icc.c index 2cb97066..594b6ebb 100644 --- a/arch/x86/scc/icc.c +++ b/arch/x86/scc/icc.c @@ -232,8 +232,12 @@ int icc_ping(int ue) int icc_mail_ping( void ) { + uint32_t flags; int remote_rank = (my_ue+1)%2; + // iRCCE is not thread save => disable interrupts + flags = irq_nested_disable(); + // send mail iRCCE_mail_send( 0, my_ue, 0, NULL, remote_rank ); @@ -246,6 +250,8 @@ int icc_mail_ping( void ) // show content iRCCE_mailbox_print_header( mail ); + irq_nested_enable(flags); + return 0; } diff --git a/kernel/main.c b/kernel/main.c index ac65706f..38803cf9 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -115,7 +115,9 @@ int main(void) sleep(5); list_root(); test_init(); + kprintf( "calling mailbox test ... \n" ); mailbox_test_init(); + kprintf( "mailbox test succeded!\n" ); per_core(current_task)->status = TASK_IDLE; reschedule();