<div><span style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;">I migrate from rtems 4.11 and libbsd 4.11 to rtems git head and libbsd git head, I find when I start up my application ,system crashed,  the crash point when use rtems irq services, I track code, find when libbsd use rtems irq service ,the system crash, in rtems/c/src/lib/libbsp/shared/src/irq_service.c</span><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><br></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><div>static rtems_status_code bsp_interrupt_server_call_helper(</div><div>  rtems_vector_number vector,</div><div>  rtems_option options,</div><div>  rtems_interrupt_handler handler,</div><div>  void *arg,</div><div>  void (*helper)(void *)</div><div>)</div><div>{</div><div>  bsp_interrupt_server_helper_data hd = {</div><div>    .vector = vector,</div><div>    .options = options,</div><div>    .handler = handler,</div><div>    .arg = arg,</div><div>    .task = rtems_task_self()</div><div>  };</div><div>  bsp_interrupt_server_action a = {</div><div>    .handler = helper,</div><div>    .arg = &hd</div><div>  };</div><div>  bsp_interrupt_server_entry e = {</div><div>    .vector = BSP_INTERRUPT_VECTOR_MAX + 1,</div><div>    .actions = &a</div><div>  };</div><div> /* this line confuse me*/</div><div>  bsp_interrupt_server_trigger(&e);</div><div>  rtems_event_transient_receive(RTEMS_WAIT, RTEMS_NO_TIMEOUT);</div><div><br></div><div>  return hd.sc;</div><div>}</div></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><br></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><div>static void bsp_interrupt_server_trigger(void *arg)</div><div>{</div><div>  rtems_interrupt_lock_context lock_context;</div><div>  bsp_interrupt_server_entry *e = arg;</div><div><br></div><div>  bsp_interrupt_vector_disable(e->vector);</div><div><br></div><div>  rtems_interrupt_lock_acquire(&bsp_interrupt_server_lock, &lock_context);</div><div><br></div><div>  if (rtems_chain_is_node_off_chain(&e->node)) {</div><div>    rtems_chain_append_unprotected(&bsp_interrupt_server_chain, &e->node);</div><div>  } else {</div><div>    ++bsp_interrupt_server_errors;</div><div>  }</div><div><br></div><div>  rtems_interrupt_lock_release(&bsp_interrupt_server_lock, &lock_context);</div><div><br></div><div>  rtems_event_system_send(bsp_interrupt_server_id, RTEMS_EVENT_SYSTEM_SERVER);</div><div>}</div></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><br></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><br></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;">in <span style="line-height: 1.5;"> /*</span><span style="line-height: 1.5;">this line confuse me*/</span></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><span style="line-height: 1.5;">1. in </span><span style="line-height: 1.5;">bsp_interrupt_server_trigger functon , </span><span style="line-height: 1.5;">bsp_interrupt_vector_disable(e->vector) often provided by bsp,in many bsp code,operation hardware register direct,the but the </span><span style="line-height: 1.5;">e->vector num is </span><span style="line-height: 1.5;">BSP_INTERRUPT_VECTOR_MAX + 1,not vertor in parmeter</span></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><span style="line-height: 1.5;">2. e is store in stack, but </span><span style="line-height: 1.5;">rtems_chain_is_node_off_chain(&e->node)  used??</span></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><span style="line-height: 1.5;"><br></span></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><span style="line-height: 1.5;">another question, I find the head version of libbsd and head version of rtems will crash when use bsd command  ,just bsd commond to list all bsd thread and irq, ifconfig  netstate ping work fine</span></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><span style="line-height: 1.5;"><br></span></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><span style="line-height: 1.5;"><br></span></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><span style="line-height: 1.5;">regards</span></div><div style="font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 23.8px;"><span style="line-height: 1.5;">yao0718</span></div></div>