[PATCH v2 3/5] ARM: add support for kernel mode NEON
Ard Biesheuvel
ard.biesheuvel at linaro.org
Wed Jun 26 06:55:33 EDT 2013
Replying to self:
On 25 June 2013 22:24, Ard Biesheuvel <ard.biesheuvel at linaro.org> wrote:
> +void kernel_neon_end(void)
> +{
> + /* Disable the NEON/VFP unit. */
> + fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN);
> + barrier();
> + dec_preempt_count();
> +}
> +EXPORT_SYMBOL(kernel_neon_end);
Meh. This is not going to please the RT crowd, as preempt_schedule()
will not be called on PREEMPT builds in this case.
Propose to replace it with
preempt_enable();
#ifndef CONFIG_PREEMPT_COUNT
/* in this case, the preempt_enable() right above is just a barrier() */
dec_preempt_count();
#endif
(and the converse in kernel_neon_begin())
In that case, preempt_disable will either be just a barrier(), or it
will re-enable preemption, and potentially reschedule if the preempt
count has dropped to zero.
--
Ard.
> +
> +#endif /* CONFIG_KERNEL_MODE_NEON */
> +
> /*
> * VFP support code initialisation.
> */
> --
> 1.8.1.2
>
More information about the linux-arm-kernel
mailing list