[PATCH 1/5] LEON3_MP ISR: shared-IRQ setup overwrite SMP/MP ISR trap handler

Daniel Hellstrom daniel at gaisler.com
Thu Oct 31 14:16:40 UTC 2013


On 10/31/2013 03:09 PM, Gedare Bloom wrote:
> On Thu, Oct 31, 2013 at 9:58 AM, Daniel Hellstrom <daniel at gaisler.com> wrote:
>> Basically the shared-irq handler overwrite the SMP/MP traphandler
>> previously initialized with set_vector(). That caused IPIs to enter
>> BSP spurious handler.
>>
>> Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
> RTEMS Project has not defined what it means to "sign-off" a commit, so
> please leave this off.

Ok, I will update and resubmit.

Thanks
>
>> ---
>>   c/src/lib/libbsp/sparc/shared/irq/irq-shared.c |    5 +++++
>>   1 files changed, 5 insertions(+), 0 deletions(-)
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c b/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c
>> index c84eeb3..16119ff 100644
>> --- a/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c
>> +++ b/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c
>> @@ -32,6 +32,11 @@ void BSP_shared_interrupt_init(void)
>>          int i;
>>
>>          for (i=0; i <= BSP_INTERRUPT_VECTOR_MAX_STD; i++) {
>> +#if defined(RTEMS_SMP) || defined(RTEMS_MULTIPROCESSING)
>> +               /* Don't install IRQ handler on IPI interrupt */
>> +               if (i == LEON3_MP_IRQ)
>> +                       continue;
>> +#endif
> This is fine for now. I wonder if there will be more such early
> initialization handlers that need to be ignored. If so then we might
> consider a more elegant solution.
>
>>                  vector = SPARC_ASYNCHRONOUS_TRAP(i) + 0x10;
>>                  rtems_interrupt_catch(BSP_ISR_handler, vector, &previous_isr);
>>          }
>> --
>> 1.7.0.4
>>
>> _______________________________________________
>> rtems-devel mailing list
>> rtems-devel at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-devel




More information about the devel mailing list