Message ID | 93a6ae3b-3271-5edb-0a1b-260ba789f3f1@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | __asm_copy_to-from_user: Fixes | expand |
Hi Tsukamoto-san, Thanks for your patch! On Tue, Jul 20, 2021 at 10:51 AM Akira Tsukamoto <akira.tsukamoto@gmail.com> wrote: > Had a bug when converting bytes to bits when the cpu was rv32. > > The a3 contains the number of bytes and multiple of 8 > would be the bits. The LGREG is holding 2 for RV32 and 3 for > RV32, so to achieve multiple of 8 it must always be constant 3. RV64 > The 2 was mistakenly used for rv32. > > Signed-off-by: Akira Tsukamoto <akira.tsukamoto@gmail.com> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org 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
Hi Geert, On 7/20/2021 6:49 PM, Geert Uytterhoeven wrote: > Hi Tsukamoto-san, > > Thanks for your patch! > > On Tue, Jul 20, 2021 at 10:51 AM Akira Tsukamoto > <akira.tsukamoto@gmail.com> wrote: >> Had a bug when converting bytes to bits when the cpu was rv32. >> >> The a3 contains the number of bytes and multiple of 8 >> would be the bits. The LGREG is holding 2 for RV32 and 3 for >> RV32, so to achieve multiple of 8 it must always be constant 3. > > RV64 Thanks, the LGREG is holding 2 for RV32 and 3 for RV64 (not RV32). Akira
diff --git a/arch/riscv/lib/uaccess.S b/arch/riscv/lib/uaccess.S index 8bbeca89a93f..279876821969 100644 --- a/arch/riscv/lib/uaccess.S +++ b/arch/riscv/lib/uaccess.S @@ -125,7 +125,7 @@ ENTRY(__asm_copy_from_user) * t3 - prev shift * t4 - current shift */ - slli t3, a3, LGREG + slli t3, a3, 3 /* converting bytes in a3 to bits */ li a5, SZREG*8 sub t4, a5, t3
Had a bug when converting bytes to bits when the cpu was rv32. The a3 contains the number of bytes and multiple of 8 would be the bits. The LGREG is holding 2 for RV32 and 3 for RV32, so to achieve multiple of 8 it must always be constant 3. The 2 was mistakenly used for rv32. Signed-off-by: Akira Tsukamoto <akira.tsukamoto@gmail.com> --- arch/riscv/lib/uaccess.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)