Hi,

I would like to make a block of kernel code atomic, so that no one (both xenomai and Linux) can interrupt it.
I use the following :

#define my_local_irq_save(x) ((x) = ipipe_test_and_stall_pipeline_head() & 1)
#define my_local_irq_restore(x) ipipe_restore_pipeline_head(x)

my_local_irq_save(flags);
< critical section >
my_local_irq_restore(flags);

It works well enough, but rarely an rtdm irq enter into my critical section. The rtdm irq is registered in this way : rtdm_irq_request(&priv->irqHnd, ETH_PORT_IRQ_NUM(priv->port), irqHandler, RTDM_IRQTYPE_EDGE, "rtdm_eth", priv);

Is it normal ? Are you sure that it cannot happen ?

Thanks,
Paolo

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to