2019-08-14 08:25:45

by Vincent Chen

[permalink] [raw]
Subject: [PATCH v2 2/2] 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: 7db91e5 ("RISC-V: Task implementation")
Cc: linux-stable <[email protected]>
Signed-off-by: Vincent Chen <[email protected]>
Reviewed-by: Anup Patel <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>

---
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 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,
--
2.7.4


2019-08-14 21:33:03

by Paul Walmsley

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] riscv: Make __fstate_clean() work correctly.

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 <[email protected]>
> Signed-off-by: Vincent Chen <[email protected]>
> Reviewed-by: Anup Patel <[email protected]>
> Reviewed-by: Christoph Hellwig <[email protected]>

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 <[email protected]>
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 <[email protected]>
Signed-off-by: Vincent Chen <[email protected]>
Reviewed-by: Anup Patel <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
[[email protected]: expanded "Fixes" commit ID]
Signed-off-by: Paul Walmsley <[email protected]>
---
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,
--
2.23.0.rc1

2019-08-14 22:36:12

by Andreas Schwab

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] riscv: Make __fstate_clean() work correctly.

On Aug 14 2019, Palmer Dabbelt <[email protected]> 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 <[email protected]>
>>> Signed-off-by: Vincent Chen <[email protected]>
>>> Reviewed-by: Anup Patel <[email protected]>
>>> Reviewed-by: Christoph Hellwig <[email protected]>
>>
>> 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.

--
Andreas Schwab, [email protected]
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."

2019-08-14 23:01:04

by Palmer Dabbelt

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] riscv: Make __fstate_clean() work correctly.

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 <[email protected]>
>> Signed-off-by: Vincent Chen <[email protected]>
>> Reviewed-by: Anup Patel <[email protected]>
>> Reviewed-by: Christoph Hellwig <[email protected]>
>
> 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 <[email protected]>
> 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 <[email protected]>
> Signed-off-by: Vincent Chen <[email protected]>
> Reviewed-by: Anup Patel <[email protected]>
> Reviewed-by: Christoph Hellwig <[email protected]>
> [[email protected]: expanded "Fixes" commit ID]
> Signed-off-by: Paul Walmsley <[email protected]>
> ---
> 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,

2019-08-15 02:21:45

by Palmer Dabbelt

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] riscv: Make __fstate_clean() work correctly.

On Wed, 14 Aug 2019 15:17:18 PDT (-0700), [email protected] wrote:
> On Aug 14 2019, Palmer Dabbelt <[email protected]> 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 <[email protected]>
>>>> Signed-off-by: Vincent Chen <[email protected]>
>>>> Reviewed-by: Anup Patel <[email protected]>
>>>> Reviewed-by: Christoph Hellwig <[email protected]>
>>>
>>> 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 :)

2019-08-15 02:57:33

by Vincent Chen

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] riscv: Make __fstate_clean() work correctly.

On Thu, Aug 15, 2019 at 6:17 AM Andreas Schwab <[email protected]> wrote:
>
> On Aug 14 2019, Palmer Dabbelt <[email protected]> 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 <[email protected]>
> >>> Signed-off-by: Vincent Chen <[email protected]>
> >>> Reviewed-by: Anup Patel <[email protected]>
> >>> Reviewed-by: Christoph Hellwig <[email protected]>
> >>
> >> 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, [email protected]
> GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
> "And now for something completely different."

2019-09-11 07:25:23

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] riscv: Make __fstate_clean() work correctly.

Hi Andreas,

On Thu, Aug 15, 2019 at 12:37 AM Andreas Schwab <[email protected]> wrote:
> On Aug 14 2019, Palmer Dabbelt <[email protected]> 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 <[email protected]>
> >>> Signed-off-by: Vincent Chen <[email protected]>
> >>> Reviewed-by: Anup Patel <[email protected]>
> >>> Reviewed-by: Christoph Hellwig <[email protected]>
> >>
> >> 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

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2019-09-11 07:33:44

by Andreas Schwab

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] riscv: Make __fstate_clean() work correctly.

On Sep 11 2019, Geert Uytterhoeven <[email protected]> wrote:

> Hi Andreas,
>
> On Thu, Aug 15, 2019 at 12:37 AM Andreas Schwab <[email protected]> wrote:
>> On Aug 14 2019, Palmer Dabbelt <[email protected]> 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 <[email protected]>
>> >>> Signed-off-by: Vincent Chen <[email protected]>
>> >>> Reviewed-by: Anup Patel <[email protected]>
>> >>> Reviewed-by: Christoph Hellwig <[email protected]>
>> >>
>> >> 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.

--
Andreas Schwab, [email protected]
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."