Hi Philippe

On Saturday 24 February 2007 22:46, Philippe Gerum wrote:
> Added to the fact that I've just fixed the CONFIG_SMP
> +CONFIG_PREEMPT issue [1], what remains to get a fully functional
> preliminary x86_64 port is to solve the CONFIG_SMP+CONFIG_IPIPE_TRACE,
> and we should be done.

If CONFIG_PREEMPT is not enabled, the kernel compile fails with:

arch/x86_64/kernel/built-in.o: In function `__ipipe_preempt_schedule_irq':
arch/x86_64/kernel/ipipe.c:471: undefined reference to `preempt_schedule_irq'
make[1]: *** [.tmp_vmlinux1] Error 1
make[1]: Leaving directory `/var/tmp/linux-2.6.19.3'
make: *** [debian/stamp-build-kernel] Error 2

The attached patch addresses the problem..


Regards, Paul.




diff -uwpr linux-2.6.19.3-orig/arch/x86_64/kernel/ipipe.c linux-2.6.19.3/arch/x86_64/kernel/ipipe.c
--- linux-2.6.19.3-orig/arch/x86_64/kernel/ipipe.c	2007-02-24 23:36:04.000000000 +0000
+++ linux-2.6.19.3/arch/x86_64/kernel/ipipe.c	2007-02-24 23:58:07.000000000 +0000
@@ -44,7 +44,9 @@
 #include <asm/ipi.h>
 #include <asm/mach_apic.h>
 
+#ifdef CONFIG_PREEMPT
 asmlinkage void preempt_schedule_irq(void);
+#endif
 
 struct pt_regs __ipipe_tick_regs[IPIPE_NR_CPUS];
 
@@ -450,6 +452,7 @@ static inline void __fixup_if(struct pt_
 	ipipe_put_cpu(flags);
 }
 
+#ifdef CONFIG_PREEMPT
 /*  Check the stall bit of the root domain to make sure the existing
     preemption opportunity upon in-kernel resumption could be
     exploited. In case a rescheduling could take place, the root stage
@@ -475,6 +478,7 @@ asmlinkage int __ipipe_preempt_schedule_
 
 	return 1;
 }
+#endif /* CONFIG_PREEMPT */
 
 asmlinkage int __ipipe_syscall_root(struct pt_regs *regs)
 {
_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to