lkml.org 
[lkml]   [2019]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH 1/2] riscv: Correct the initialized flow of FP register
On Mon, Aug 12, 2019 at 10:58 PM Christoph Hellwig <hch@infradead.org> wrote:
>
> > +static inline void fstate_off(struct task_struct *task,
> > + struct pt_regs *regs)
> > +{
> > + regs->sstatus = (regs->sstatus & ~(SR_FS)) | SR_FS_OFF;
>
> No need for the inner braces here.

Ok.

>
> > +}
> > +
> > static inline void fstate_save(struct task_struct *task,
> > struct pt_regs *regs)
> > {
> > diff --git a/arch/riscv/kernel/process.c b/arch/riscv/kernel/process.c
> > index f23794b..e3077ee 100644
> > --- a/arch/riscv/kernel/process.c
> > +++ b/arch/riscv/kernel/process.c
> > @@ -64,8 +64,16 @@ void start_thread(struct pt_regs *regs, unsigned long pc,
> > unsigned long sp)
> > {
> > regs->sstatus = SR_SPIE;
> > - if (has_fpu)
> > + if (has_fpu) {
> > regs->sstatus |= SR_FS_INITIAL;
> > +#ifdef CONFIG_FPU
> > + /*
> > + * Restore the initial value to the FP register
> > + * before starting the user program.
> > + */
> > + fstate_restore(current, regs);
> > +#endif
>
> fstate_restore has a no-op stub for the !CONFIG_FPU case, so the ifdef
> here is not needed.
>
You are right. I will remove the Ifdef condition.

> Otherwise this looks good to me:
>
> Reviewed-by: Christoph Hellwig <hch@lst.de>

Thanks for your comments.

Regards,
Vincent Chen

\
 
 \ /
  Last update: 2019-08-14 03:53    [W:0.066 / U:14.448 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site