On Mon, 15 Jun 2026 10:14:54 +0900 "Masami Hiramatsu (Google)" <[email protected]> wrote:
> + case FETCH_OP_DEREF_CPU: > + val = (unsigned long)this_cpu_ptr((void __percpu *)val); > + ret = probe_mem_read(&val, (void *)val, sizeof(val)); > + break; > + case FETCH_OP_CPU_PTR: > + val = (unsigned long)this_cpu_ptr((void __percpu *)val); > + ret = 0; > + break; Hmm, maybe I can just convert the FETCH_OP_DEREF_CPU to FETCH_OP_CPU_PTR + FETCH_OP_DEREF to simply the code. > + default: > + lval = llval; > + goto out; > + } > if (ret) > return ret; > + llval = lval; > code++; > } while (1); > +out: > > s3 = code; > stage3: > @@ -181,6 +195,10 @@ process_fetch_insn_bottom(struct fetch_insn *code, > unsigned long val, > case FETCH_OP_ST_UMEM: > probe_mem_read_user(dest, (void *)val + code->offset, > code->size); > break; > + case FETCH_OP_ST_CPUMEM: > + val = (unsigned long)this_cpu_ptr((void __percpu *)val); > + probe_mem_read(dest, (void *)val, code->size); > + break; Then, I can just drop this change. Thanks, -- Masami Hiramatsu (Google) <[email protected]>
