diff options
| author | Akira Tsukamoto <[email protected]> | 2021-07-20 08:50:52 +0000 |
|---|---|---|
| committer | Palmer Dabbelt <[email protected]> | 2021-07-24 00:48:52 +0000 |
| commit | 6010d300f9f7e16d1bf327b4730bcd0c0886d9e6 (patch) | |
| tree | cb9a13e091564601e86ccc04f4e5424a1399cb27 /lib/debugobjects.c | |
| parent | riscv: stacktrace: pin the task's stack in get_wchan (diff) | |
| download | kernel-6010d300f9f7e16d1bf327b4730bcd0c0886d9e6.tar.gz kernel-6010d300f9f7e16d1bf327b4730bcd0c0886d9e6.zip | |
riscv: __asm_copy_to-from_user: Fix: overrun copy
There were two causes for the overrun memory access.
The threshold size was too small.
The aligning dst require one SZREG and unrolling word copy requires
8*SZREG, total have to be at least 9*SZREG.
Inside the unrolling copy, the subtracting -(8*SZREG-1) would make
iteration happening one extra loop. Proper value is -(8*SZREG).
Signed-off-by: Akira Tsukamoto <[email protected]>
Fixes: ca6eaaa210de ("riscv: __asm_copy_to-from_user: Optimize unaligned memory access and pipeline stall")
Signed-off-by: Palmer Dabbelt <[email protected]>
Diffstat (limited to 'lib/debugobjects.c')
0 files changed, 0 insertions, 0 deletions
