diff options
| author | Palmer Dabbelt <palmer@rivosinc.com> | 2023-02-15 10:57:13 -0800 | 
|---|---|---|
| committer | Palmer Dabbelt <palmer@rivosinc.com> | 2023-02-15 10:59:54 -0800 | 
| commit | ec6311919ea616be69076d03c3e2d2f7769d5f5f (patch) | |
| tree | cd6255ac7e95d6786ac4ebdae7ac8a1cb62d5efe /net/lapb/lapb_out.c | |
| parent | 9a5c09dd97014e7f3dc3a440d2ee67fdb33dcc6e (diff) | |
| parent | 6724a76cff85ee271bbbff42ac527e4643b2ec52 (diff) | |
Merge patch series "riscv: Optimize function trace"
guoren@kernel.org <guoren@kernel.org> says:
From: Guo Ren <guoren@linux.alibaba.com>
The previous ftrace detour implementation fc76b8b8011 ("riscv: Using
PATCHABLE_FUNCTION_ENTRY instead of MCOUNT") contain three problems.
 - The most horrible bug is preemption panic which found by Andy [1].
   Let's disable preemption for ftrace first, and Andy could continue
   the ftrace preemption work.
 - The "-fpatchable-function-entry= CFLAG" wasted code size
   !RISCV_ISA_C.
 - The ftrace detour implementation wasted code size.
 - When livepatching, the trampoline (ftrace_regs_caller) would not
   return to <func_prolog+12> but would rather jump to the new function.
   So, "REG_L ra, -SZREG(sp)" would not run and the original return
   address would not be restored. The kernel is likely to hang or crash
   as a result. (Found by Evgenii Shatokhin [4])
[Palmer: The first three patches in this series are pretty concrete
fixes, so I'm pulling them ahead of the rest of the series.]
* b4-shazam-merge:
  riscv: ftrace: Reduce the detour code size to half
  riscv: ftrace: Remove wasted nops for !RISCV_ISA_C
  riscv: ftrace: Fixup panic by disabling preemption
Link: https://lore.kernel.org/r/20230112090603.1295340-1-guoren@kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Diffstat (limited to 'net/lapb/lapb_out.c')
0 files changed, 0 insertions, 0 deletions
