|
From: Nikolay M. <ohm...@gm...> - 2013-02-05 11:56:27
|
Hi, all! I've found one strange thing. May be someone here can help me. If I try to build an l4Linux with no-SMP config, it results in a fail. And here, I think, the reason: In l4lx lib we have file l4lx_irq.cc (ports-foc/src/lib/l4lx/l4lx_irq.cc). Here we have a function l4lx_irq_dev_set_affinity() that uses non-lib (regular l4linux) function l4x_cpumask_copy(). This function declared in arch/l4/kernel/main.c In it's turn this function makes the following call: >> cpumask_copy(data->affinity, dest); as you can see, it uses an affinity member of irq_data struct. And this member is under l4linux config control: >> #ifdef CONFIG_SMP >> cpumask_var_t affinity; >> #endif So, as a result, if l4linux config doesn't provide this option - build fails. We can't use the same l4linux config directive in a lib l4lx_irq.cc to "turn off" this chain, because it is not available there. I have to change from SMP version to SMP from time to time, so as a solution I can wrap cpumask_copy(data->affinity, dest); in the same directive, but I don't think it's a good solutions. Have you any ideas? Best regards, Nikolay |