[PATCH] arm: vfp: always clear vfp_current_hw_state when forcing reload

Russell King - ARM Linux linux at arm.linux.org.uk
Fri Oct 11 12:26:50 EDT 2013


On Fri, Oct 11, 2013 at 11:12:19AM -0500, Yuanyuan ZHONG wrote:
> On Fri, Oct 11, 2013 at 7:07 AM, Russell King - ARM Linux
> <linux at arm.linux.org.uk> wrote:
> > On Thu, Oct 10, 2013 at 11:00:18AM -0500, Yuanyuan ZHONG wrote:
> >> Hi Russell, et al
> >>
> >> If there is no further comments, I'll submit it to patch system.
> >> Thanks.
> >
> > No, I still don't agree with your patch as being the correct fix.  Look
> > at the code that you're creating:
> >
> >         if (vfp_state_in_hw(cpu, thread)) {
> >                 fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN);
> >                 vfp_current_hw_state[cpu] = NULL;
> >         }
> > #ifdef CONFIG_SMP
> >         thread->vfpstate.hard.cpu = NR_CPUS;
> >         vfp_current_hw_state[cpu] = NULL;
> > #endif
> >
> > So when SMP is enabled we unconditionally blat out the vfp_current_hw_state
> > pointer for this CPU?
> 
> I think ensuring local vfp_current_hw_state is invalidated is what
> vfp_force_reload() need to do when SMP is enabled.

vfp_force_reload() is about asking for the state S on CPU N to be
reloaded.  It is not about merely asking for the state on CPU N to
be reloaded.



More information about the linux-arm-kernel mailing list