[DTrace-devel] [PATCH 1/4] uregs: Minor cleanup

eugene.loh at oracle.com eugene.loh at oracle.com
Thu May 18 20:15:14 UTC 2023


From: Eugene Loh <eugene.loh at oracle.com>

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
 libdtrace/dt_cg.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 1c482cd6..c581dd11 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -4177,8 +4177,8 @@ dt_cg_uregs(unsigned int idx, dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp
 	emit(dlp, BPF_MOV_REG(BPF_REG_1, BPF_REG_0));
 	emit(dlp, BPF_CALL_HELPER(BPF_FUNC_task_pt_regs));
 	dt_regset_free_args(drp);
-	emit(dlp, BPF_ALU64_IMM(BPF_ADD, BPF_REG_0, idx * sizeof(uint64_t)));
-	emit(dlp, BPF_LOAD(BPF_DW, dnp->dn_reg, BPF_REG_0, 0));
+	/* The BPF verifier allows this load since it tracks %r0 as "ptr_pt_regs". */
+	emit(dlp, BPF_LOAD(BPF_DW, dnp->dn_reg, BPF_REG_0, idx * sizeof(uint64_t)));
 	dt_regset_free(drp, BPF_REG_0);
 }
 
-- 
2.18.4




More information about the DTrace-devel mailing list