Hello,
There is a problem in Fusion (PPC) that enabling ALTIVEC triggers. The
problem is that fusion uses _switch from Linux, which expects to have
"current" task (r2) in valid state. If I'm not horribly mistaken ---
also an option, I know next to nothing about Fusion --- "current" is not
valid when in other domains than root(=Linux). The attached patch should
fix the problem.
Regards,
Heikki Lindholm
diff -Nru fusion.orig/include/nucleus/asm-ppc/system.h
fusion/include/nucleus/asm-ppc/system.h
--- fusion.orig/include/nucleus/asm-ppc/system.h 2005-03-17
09:46:13.000000000 +0200
+++ fusion/include/nucleus/asm-ppc/system.h 2005-03-20 23:26:56.560521173
+0200
@@ -433,6 +433,9 @@
next->thread.regs->msr |= MSR_SPE;
#endif /* CONFIG_SPE */
+ /* _switch expects a valid "current" (r2) for storing
+ * ALTIVEC and SPE state. */
+ current = prev;
_switch(&prev->thread, &next->thread);
barrier();