[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