Messages in this thread | | | Date | Wed, 24 Apr 2024 11:44:17 +0100 | From | Conor Dooley <> | Subject | Re: [PATCH v2 4/7] riscv: Simplify text patching loops |
| |
On Wed, Mar 27, 2024 at 09:04:43AM -0700, Samuel Holland wrote: > This reduces the number of variables and makes the code easier to parse. > > Signed-off-by: Samuel Holland <samuel.holland@sifive.com> > --- > > Changes in v2: > - Further simplify patch_insn_set()/patch_insn_write() loop conditions > - Use min() instead of min_t() since both sides are unsigned long > > arch/riscv/kernel/patch.c | 37 +++++++++++++++++++++---------------- > 1 file changed, 21 insertions(+), 16 deletions(-) > > diff --git a/arch/riscv/kernel/patch.c b/arch/riscv/kernel/patch.c > index 9a1bce1adf5a..0d1700d1934c 100644 > --- a/arch/riscv/kernel/patch.c > +++ b/arch/riscv/kernel/patch.c > @@ -155,22 +155,24 @@ NOKPROBE_SYMBOL(__patch_insn_write); > > static int patch_insn_set(void *addr, u8 c, size_t len) > { > - size_t patched = 0; > size_t size; > - int ret = 0; > > /* > * __patch_insn_set() can only work on 2 pages at a time so call it in a > * loop with len <= 2 * PAGE_SIZE. > */ > - while (patched < len && !ret) { > - size = min_t(size_t, PAGE_SIZE * 2 - offset_in_page(addr + patched), len - patched); > - ret = __patch_insn_set(addr + patched, c, size); > - > - patched += size; > } > > - return ret; > }
Weren't these actively wrong before, if a non-ultimate __patch_insn_set() failed we'd just ignore the error?
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Thanks, Conor. [unhandled content-type:application/pgp-signature] | |