Hello everyone! I have x86_64 PC with CAN adapter served by PLX PCI driver on board. I've installed Xenomai 3.0.1 Cobalt on Linux kernel 3.16.7 with ipipe-core-3.16.7-x86-5 patch. My CAN adapter has two channels, and they're registered on one IRQ line (in my case it's 19). Shared interrupts were enabled. When one channel is up and other is down, I have strange error: when I sent 500 and received 500 frames through one channel interface, the IRQ line became disabled with message: '[Xenomai] xnintr_vec_handler: IRQ19 not handled. Disabling IRQ line'. When both channels are up, there is no such error.
I've found in 'xnintr_vec_handler' in 'xenomai-3/kernel/cobalt/intr.c' file of xenomai source that if at least one handler on shared IRQ line returns 'XN_IRQ_NONE', then 'vec->unhandled' counter is incremented, and when it reaches 1000, the corresponding IRQ line is disabled. In my case the handler of the first channel, which is up, returns 'XN_IRQ_HANDLED' but the second one, which is down, returns 'XN_IRQ_NONE'. The question is: is this behavior in 'xnintr_vec_handler' correct? Do I always need to enable both channels although I use only one of them? Best regards, Alexey _______________________________________________ Xenomai mailing list [email protected] http://xenomai.org/mailman/listinfo/xenomai
