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]>

Reply via email to