[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A few BSPs have buggy ISR processing.



Sergei Organov wrote:
> While looking at ISR processing code in different BSPs I've noticed that a few
> BSPs have bugs in the code. All the observations are made in the latest
> 20030128 snapshot. The BSPs affected are:
> 
> sh/sh7032
> sh/sh7045
> sh/sh7750

I have noticed the same (but only looked at 'sh')

-- Till

> c4x
> a29k
> 
> The first 4 have the same bug:
> 
> - if(( _Context_Switch_necessary) || (! _ISR_Signals_to_thread_executing))
> + if(( _Context_Switch_necessary) || (_ISR_Signals_to_thread_executing))
> 
> Here are the relevant lines:
> 
> rtems-ss-20030128/c/src/lib/libcpu/sh/sh7032/score/cpu_asm.c:305:      if(( _Context_Switch_necessary) || (! _ISR_Signals_to_thread_executing))
> rtems-ss-20030128/c/src/lib/libcpu/sh/sh7045/score/cpu_asm.c:308:      if(( _Context_Switch_necessary) || (! _ISR_Signals_to_thread_executing))
> rtems-ss-20030128/c/src/lib/libcpu/sh/sh7750/score/cpu_asm.c:305:      if(( _Context_Switch_necessary) || (! _ISR_Signals_to_thread_executing))
> rtems-ss-20030128/cpukit/score/cpu/c4x/irq.c:77:    if (_Context_Switch_necessary || !_ISR_Signals_to_thread_executing ) {
> 
> The a29k fails to reset _ISR_Signals_to_thread_executing to FALSE here:
> 
> rtems-ss-20030128/cpukit/score/cpu/a29k/cpu.c:274:    (_Context_Switch_necessary || _ISR_Signals_to_thread_executing ))
> 
>