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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
