Messages in this thread | | | Date | Wed, 14 Aug 2019 14:29:24 -0700 (PDT) | Subject | Re: [PATCH v2 2/2] riscv: Make __fstate_clean() work correctly. | From | Palmer Dabbelt <> |
| |
On Wed, 14 Aug 2019 13:32:50 PDT (-0700), Paul Walmsley wrote: > On Wed, 14 Aug 2019, Vincent Chen wrote: > >> Make the __fstate_clean() function correctly set the >> state of sstatus.FS in pt_regs to SR_FS_CLEAN. >> >> Fixes: 7db91e5 ("RISC-V: Task implementation") >> Cc: linux-stable <stable@vger.kernel.org> >> Signed-off-by: Vincent Chen <vincent.chen@sifive.com> >> Reviewed-by: Anup Patel <anup@brainfault.org> >> Reviewed-by: Christoph Hellwig <hch@lst.de> > > Thanks, I extended the "Fixes" commit ID to 12 digits, as is the usual > practice here, and have queued the following for v5.3-rc.
For reference, something like "git config core.abbrev=12" (or whatever you write to get this in your .gitconfig)
https://github.com/palmer-dabbelt/home/blob/master/.gitconfig.in#L23
causes git to do the right thing.
> - Paul > > From: Vincent Chen <vincent.chen@sifive.com> > Date: Wed, 14 Aug 2019 16:23:53 +0800 > Subject: [PATCH] riscv: Make __fstate_clean() work correctly. > > Make the __fstate_clean() function correctly set the > state of sstatus.FS in pt_regs to SR_FS_CLEAN. > > Fixes: 7db91e57a0acd ("RISC-V: Task implementation") > Cc: linux-stable <stable@vger.kernel.org> > Signed-off-by: Vincent Chen <vincent.chen@sifive.com> > Reviewed-by: Anup Patel <anup@brainfault.org> > Reviewed-by: Christoph Hellwig <hch@lst.de> > [paul.walmsley@sifive.com: expanded "Fixes" commit ID] > Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com> > --- > arch/riscv/include/asm/switch_to.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/riscv/include/asm/switch_to.h b/arch/riscv/include/asm/switch_to.h > index 949d9cd91dec..f0227bdce0f0 100644 > --- a/arch/riscv/include/asm/switch_to.h > +++ b/arch/riscv/include/asm/switch_to.h > @@ -16,7 +16,7 @@ extern void __fstate_restore(struct task_struct *restore_from); > > static inline void __fstate_clean(struct pt_regs *regs) > { > - regs->sstatus |= (regs->sstatus & ~(SR_FS)) | SR_FS_CLEAN; > + regs->sstatus = (regs->sstatus & ~SR_FS) | SR_FS_CLEAN; > } > > static inline void fstate_off(struct task_struct *task,
| |