1*4882a593Smuzhiyun { 2*4882a593Smuzhiyun "d_path accept", 3*4882a593Smuzhiyun .insns = { 4*4882a593Smuzhiyun BPF_LDX_MEM(BPF_W, BPF_REG_1, BPF_REG_1, 0), 5*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 6*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), 7*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_6, 0), 8*4882a593Smuzhiyun BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_6, 0), 9*4882a593Smuzhiyun BPF_LD_IMM64(BPF_REG_3, 8), 10*4882a593Smuzhiyun BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_d_path), 11*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_0, 0), 12*4882a593Smuzhiyun BPF_EXIT_INSN(), 13*4882a593Smuzhiyun }, 14*4882a593Smuzhiyun .result = ACCEPT, 15*4882a593Smuzhiyun .prog_type = BPF_PROG_TYPE_TRACING, 16*4882a593Smuzhiyun .expected_attach_type = BPF_TRACE_FENTRY, 17*4882a593Smuzhiyun .kfunc = "dentry_open", 18*4882a593Smuzhiyun }, 19*4882a593Smuzhiyun { 20*4882a593Smuzhiyun "d_path reject", 21*4882a593Smuzhiyun .insns = { 22*4882a593Smuzhiyun BPF_LDX_MEM(BPF_W, BPF_REG_1, BPF_REG_1, 0), 23*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 24*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), 25*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_6, 0), 26*4882a593Smuzhiyun BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_6, 0), 27*4882a593Smuzhiyun BPF_LD_IMM64(BPF_REG_3, 8), 28*4882a593Smuzhiyun BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_d_path), 29*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_0, 0), 30*4882a593Smuzhiyun BPF_EXIT_INSN(), 31*4882a593Smuzhiyun }, 32*4882a593Smuzhiyun .errstr = "helper call is not allowed in probe", 33*4882a593Smuzhiyun .result = REJECT, 34*4882a593Smuzhiyun .prog_type = BPF_PROG_TYPE_TRACING, 35*4882a593Smuzhiyun .expected_attach_type = BPF_TRACE_FENTRY, 36*4882a593Smuzhiyun .kfunc = "d_path", 37*4882a593Smuzhiyun }, 38