> +
> +/*
> + * Use kernel_fpu_begin/end() if you intend to use FPU in kernel context. It
> + * disables preemption so be careful if you intend to use it for long periods
> + * of time.
> + * TODO: If you intend to use the FPU in irq/softirq you need to check first 
> with
> + * irq_fpu_usable() if it is possible.

Please avoid the overly lone lines comments.

> +extern bool kernel_fpu_enabled(void);
> +extern void kernel_fpu_begin(void);
> +extern void kernel_fpu_end(void);

No need for the externs.

> +/*
> + * Track whether the kernel is using the FPU state
> + * currently.

This all fits on a single line.

> +static bool fpu_support(void)
> +{
> +     if (cpu_has_feature(CPU_FTR_VSX_COMP)) {
> +             return true;
> +     } else if (cpu_has_feature(CPU_FTR_ALTIVEC_COMP)) {
> +             return true;
> +     } else if (!cpu_has_feature(CPU_FTR_FPU_UNAVAILABLE)) {
> +             return true;
> +     }

No need for the braces, or else after a return.  In fact this could
be simplified down to:

        return cpu_has_feature(CPU_FTR_VSX_COMP) ||
                cpu_has_feature(CPU_FTR_ALTIVEC_COMP) ||
                cpu_has_feature(CPU_FTR_FPU_UNAVAILABLE));

> +     preempt_disable();
> +
> +#ifdef CONFIG_VSX
> +     if (cpu_has_feature(CPU_FTR_VSX_COMP)) {
> +             enable_kernel_vsx();
> +             return;
> +     }
> +#endif
> +
> +#ifdef CONFIG_ALTIVEC
> +     if (cpu_has_feature(CPU_FTR_ALTIVEC_COMP)) {
> +             enable_kernel_altivec();
> +             return;
> +     }
> +#endif
> +
> +#ifdef CONFIG_PPC_FPU
> +     if (!cpu_has_feature(CPU_FTR_FPU_UNAVAILABLE)) {
> +             enable_kernel_fp();
> +             return;
> +     }
> +#endif

All the features are defined away if not supported (and we already rely
on that in fpu_support()).  So this could become:

        if (cpu_has_feature(CPU_FTR_VSX_COMP))
                enable_kernel_vsx();
        else if (cpu_has_feature(CPU_FTR_ALTIVEC_COMP))
                enable_kernel_altivec();
        else if (!cpu_has_feature(CPU_FTR_FPU_UNAVAILABLE))
                enable_kernel_fp();

Same for the disable path.

Reply via email to