[PATCH] raid6: altivec support

David Woodhouse dwmw2 at infradead.org
Mon Jan 17 21:16:32 EST 2005


On Sun, 2005-01-09 at 16:13 +0100, Olaf Hering wrote:
> 
> > ChangeSet 1.2347, 2005/01/08 14:02:27-08:00, hpa at zytor.com
> > 
> >       [PATCH] raid6: altivec support
> >       
> >       This patch adds Altivec support for RAID-6, if appropriately configured on
> >       the ppc or ppc64 architectures.  Note that it changes the compile flags for
> >       ppc64 in order to handle -maltivec correctly; this change was vetted on the
> >       ppc64 mailing list and OK'd by paulus.
> 
> This fails to compile on ppc, enable_kernel_altivec() is an exported but
> undeclared function. cpu_features is also missing.
> 
> drivers/md/raid6altivec1.c: In function `raid6_altivec1_gen_syndrome':
> drivers/md/raid6altivec1.c:99: warning: implicit declaration of function `enable_kernel_altivec'
> drivers/md/raid6altivec1.c: In function `raid6_have_altivec':
> drivers/md/raid6altivec1.c:111: error: request for member `cpu_features' in something not a structure or union
> drivers/md/raid6altivec2.c: In function `raid6_altivec2_gen_syndrome':
> drivers/md/raid6altivec2.c:110: warning: implicit declaration of function `enable_kernel_altivec'

This makes it compile on PPC, but highlights the difference between
'cur_cpu_spec' on ppc32 and ppc64. Why is 'cur_cpu_spec' an array on
ppc32? Isn't 'cur' supposed to imply 'current'?

===== drivers/md/raid6altivec.uc 1.1 vs edited =====
--- 1.1/drivers/md/raid6altivec.uc	Sat Jan  8 05:44:07 2005
+++ edited/drivers/md/raid6altivec.uc	Mon Jan 17 09:45:20 2005
@@ -108,7 +108,11 @@
 int raid6_have_altivec(void)
 {
 	/* This assumes either all CPUs have Altivec or none does */
+#ifdef CONFIG_PPC64
 	return cur_cpu_spec->cpu_features & CPU_FTR_ALTIVEC;
+#else
+	return cur_cpu_spec[0]->cpu_features & CPU_FTR_ALTIVEC;
+#endif
 }
 #endif
 


-- 
dwmw2




More information about the Linuxppc-dev mailing list