Axel Beierlein wrote:
> Am 29.08.2007, 16:42 Uhr, schrieb Jan Kiszka <[EMAIL PROTECTED]>:
> 
>> Axel Beierlein wrote:
>>> what could it be that an simple rt_dev_open locks up my system when it
>>> calls rtdm_lock_put_irqrestore?
>>>
>>> [...]
>>> if (rtdm_irq_request(&ctx->irq_handle,
>>>                 MPC5xxx_PSC2_IRQ,
>>>             rt_psc_interrupt,
>>>             RTDM_IRQTYPE_SHARED | RTDM_IRQTYPE_EDGE,
>>>                 context->device->proc_name,
>>>                 ctx))
>>>     {
>>>         printk ("psc5200B.c: request_irq() failed\n");
>>>         return -1;
>>>     }
>>>
>>>      rtdm_irq_enable(&ctx->irq_handle);
>>>
>>>      rtdm_lock_get_irqsave(&ctx->lock, lock_ctx);
>>>
>>>      ctx->imr_status = MPC5xxx_PSC_IMR_RXRDY;
>>>     out_be16(&psc->mpc5xxx_psc_imr, ctx->imr_status);
>>
>> Let me guess: this line arms the related IRQ source at hw level, no?
>>
> 
> Yes you are right. This Bit enables the RX_Ready IRQ at hw level. Sorry
> for the little Code fragment but the code relates to your 16550A.c and i
> don´t want to post all the routines at the moment.
> 
>>>
>>>     rtdm_lock_put_irqrestore(&ctx->lock, lock_ctx);
>>>     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>     Here i get the crash
>>
>> Because it enabled local IRQ delivery again, and the system ends up in
>> an IRQ storm, or some endless loop in the IRQ handler, or some crash
>> related to IRQ handling. Still just guessing...
>>
>> Jan
>>
> 
> But how your UART driver handle this Problem? I have check the Irq
> Handler an implement an printk in it to see where it hangs, but it
> doesn´t step into this handler.

In case you have an IRQ storm or your handler runs in an endless loop,
you won't be able to read that printk even if it's executed - Linux will
have no chance to dump the message.

Start debugging with shrinking the handler down to a plain "return
RTDM_IRQ_HANDLED" (or even RTDM_IRQ_NONE so that Xenomai disables the
line), then slowly re-enabling and reviewing your code.

Jan

PS: reply-to-all

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to