Message ID | 1565771033-1831-3-git-send-email-vincent.chen@sifive.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | riscv: Correct the initialized flow of FP and __fstate_clean() | expand |
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. - 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,
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,
On Aug 14 2019, Palmer Dabbelt <palmer@sifive.com> wrote: > 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. Actually, the right setting is core.abbrev=auto (or leaving it unset). It lets git chose the appropriate length depending on the repository contents. For the linux repository it will chose 13 right now. Andreas.
On Wed, 14 Aug 2019 15:17:18 PDT (-0700), schwab@linux-m68k.org wrote: > On Aug 14 2019, Palmer Dabbelt <palmer@sifive.com> wrote: > >> 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. > > Actually, the right setting is core.abbrev=auto (or leaving it unset). > It lets git chose the appropriate length depending on the repository > contents. For the linux repository it will chose 13 right now. Awesome, thanks! I've updated my config :)
On Thu, Aug 15, 2019 at 6:17 AM Andreas Schwab <schwab@linux-m68k.org> wrote: > > On Aug 14 2019, Palmer Dabbelt <palmer@sifive.com> wrote: > > > 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. > > Thank Paul for correcting my mistake. > > 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. > > Actually, the right setting is core.abbrev=auto (or leaving it unset). > It lets git chose the appropriate length depending on the repository > contents. For the linux repository it will chose 13 right now. > > Andreas. > Thanks to Palmer and Andreas for sharing this useful information. > -- > Andreas Schwab, schwab@linux-m68k.org > GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 > "And now for something completely different."
Hi Andreas, On Thu, Aug 15, 2019 at 12:37 AM Andreas Schwab <schwab@linux-m68k.org> wrote: > On Aug 14 2019, Palmer Dabbelt <palmer@sifive.com> wrote: > > 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. > > Actually, the right setting is core.abbrev=auto (or leaving it unset). > It lets git chose the appropriate length depending on the repository > contents. For the linux repository it will chose 13 right now. Does that depend on the git version? For me (git version 2.17.1), it still uses 12 when using the auto setting. Should we update Documentation/process/submitting-patches.rst to increase to e.g. 16 (which is what I've been using for quite a while)? When can we expect old 12 hexit references to start breaking? Thanks! Gr{oetje,eeting}s, Geert
On Sep 11 2019, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > Hi Andreas, > > On Thu, Aug 15, 2019 at 12:37 AM Andreas Schwab <schwab@linux-m68k.org> wrote: >> On Aug 14 2019, Palmer Dabbelt <palmer@sifive.com> wrote: >> > 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. >> >> Actually, the right setting is core.abbrev=auto (or leaving it unset). >> It lets git chose the appropriate length depending on the repository >> contents. For the linux repository it will chose 13 right now. > > Does that depend on the git version? > For me (git version 2.17.1), it still uses 12 when using the auto setting. No, 12 is the correct number. I was miscounting. Andreas.
diff --git a/arch/riscv/include/asm/switch_to.h b/arch/riscv/include/asm/switch_to.h index 0575b8a..0aa5b94 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,