Back to home page

OSCL-LXR

 
 

    


0001 {
0002     "bpf_ktime_get_coarse_ns is forbidden in BPF_PROG_TYPE_KPROBE",
0003     .insns = {
0004         BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_ktime_get_coarse_ns),
0005         BPF_MOV64_IMM(BPF_REG_0, 0),
0006         BPF_EXIT_INSN(),
0007     },
0008     .errstr = "unknown func bpf_ktime_get_coarse_ns",
0009     .result = REJECT,
0010     .prog_type = BPF_PROG_TYPE_KPROBE,
0011 },
0012 {
0013     "bpf_ktime_get_coarse_ns is forbidden in BPF_PROG_TYPE_TRACEPOINT",
0014     .insns = {
0015         BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_ktime_get_coarse_ns),
0016         BPF_MOV64_IMM(BPF_REG_0, 0),
0017         BPF_EXIT_INSN(),
0018     },
0019     .errstr = "unknown func bpf_ktime_get_coarse_ns",
0020     .result = REJECT,
0021     .prog_type = BPF_PROG_TYPE_TRACEPOINT,
0022 },
0023 {
0024     "bpf_ktime_get_coarse_ns is forbidden in BPF_PROG_TYPE_PERF_EVENT",
0025     .insns = {
0026     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_ktime_get_coarse_ns),
0027     BPF_MOV64_IMM(BPF_REG_0, 0),
0028     BPF_EXIT_INSN(),
0029     },
0030     .errstr = "unknown func bpf_ktime_get_coarse_ns",
0031     .result = REJECT,
0032     .prog_type = BPF_PROG_TYPE_PERF_EVENT,
0033 },
0034 {
0035     "bpf_ktime_get_coarse_ns is forbidden in BPF_PROG_TYPE_RAW_TRACEPOINT",
0036     .insns = {
0037     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_ktime_get_coarse_ns),
0038     BPF_MOV64_IMM(BPF_REG_0, 0),
0039     BPF_EXIT_INSN(),
0040     },
0041     .errstr = "unknown func bpf_ktime_get_coarse_ns",
0042     .result = REJECT,
0043     .prog_type = BPF_PROG_TYPE_RAW_TRACEPOINT,
0044 },
0045 {
0046     "bpf_timer_init isn restricted in BPF_PROG_TYPE_KPROBE",
0047     .insns = {
0048     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0049     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
0050     BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0),
0051     BPF_LD_MAP_FD(BPF_REG_1, 0),
0052     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem),
0053     BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 4),
0054     BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
0055     BPF_LD_MAP_FD(BPF_REG_2, 0),
0056     BPF_MOV64_IMM(BPF_REG_3, 1),
0057     BPF_EMIT_CALL(BPF_FUNC_timer_init),
0058     BPF_EXIT_INSN(),
0059     },
0060     .fixup_map_timer = { 3, 8 },
0061     .errstr = "tracing progs cannot use bpf_timer yet",
0062     .result = REJECT,
0063     .prog_type = BPF_PROG_TYPE_KPROBE,
0064 },
0065 {
0066     "bpf_timer_init is forbidden in BPF_PROG_TYPE_PERF_EVENT",
0067     .insns = {
0068     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0069     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
0070     BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0),
0071     BPF_LD_MAP_FD(BPF_REG_1, 0),
0072     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem),
0073     BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 4),
0074     BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
0075     BPF_LD_MAP_FD(BPF_REG_2, 0),
0076     BPF_MOV64_IMM(BPF_REG_3, 1),
0077     BPF_EMIT_CALL(BPF_FUNC_timer_init),
0078     BPF_EXIT_INSN(),
0079     },
0080     .fixup_map_timer = { 3, 8 },
0081     .errstr = "tracing progs cannot use bpf_timer yet",
0082     .result = REJECT,
0083     .prog_type = BPF_PROG_TYPE_PERF_EVENT,
0084 },
0085 {
0086     "bpf_timer_init is forbidden in BPF_PROG_TYPE_TRACEPOINT",
0087     .insns = {
0088     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0089     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
0090     BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0),
0091     BPF_LD_MAP_FD(BPF_REG_1, 0),
0092     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem),
0093     BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 4),
0094     BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
0095     BPF_LD_MAP_FD(BPF_REG_2, 0),
0096     BPF_MOV64_IMM(BPF_REG_3, 1),
0097     BPF_EMIT_CALL(BPF_FUNC_timer_init),
0098     BPF_EXIT_INSN(),
0099     },
0100     .fixup_map_timer = { 3, 8 },
0101     .errstr = "tracing progs cannot use bpf_timer yet",
0102     .result = REJECT,
0103     .prog_type = BPF_PROG_TYPE_TRACEPOINT,
0104 },
0105 {
0106     "bpf_timer_init is forbidden in BPF_PROG_TYPE_RAW_TRACEPOINT",
0107     .insns = {
0108     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0109     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
0110     BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0),
0111     BPF_LD_MAP_FD(BPF_REG_1, 0),
0112     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem),
0113     BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 4),
0114     BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
0115     BPF_LD_MAP_FD(BPF_REG_2, 0),
0116     BPF_MOV64_IMM(BPF_REG_3, 1),
0117     BPF_EMIT_CALL(BPF_FUNC_timer_init),
0118     BPF_EXIT_INSN(),
0119     },
0120     .fixup_map_timer = { 3, 8 },
0121     .errstr = "tracing progs cannot use bpf_timer yet",
0122     .result = REJECT,
0123     .prog_type = BPF_PROG_TYPE_RAW_TRACEPOINT,
0124 },
0125 {
0126     "bpf_spin_lock is forbidden in BPF_PROG_TYPE_KPROBE",
0127     .insns = {
0128     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0129     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
0130     BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0),
0131     BPF_LD_MAP_FD(BPF_REG_1, 0),
0132     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem),
0133     BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2),
0134     BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
0135     BPF_EMIT_CALL(BPF_FUNC_spin_lock),
0136     BPF_EXIT_INSN(),
0137     },
0138     .fixup_map_spin_lock = { 3 },
0139     .errstr = "tracing progs cannot use bpf_spin_lock yet",
0140     .result = REJECT,
0141     .prog_type = BPF_PROG_TYPE_KPROBE,
0142 },
0143 {
0144     "bpf_spin_lock is forbidden in BPF_PROG_TYPE_TRACEPOINT",
0145     .insns = {
0146     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0147     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
0148     BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0),
0149     BPF_LD_MAP_FD(BPF_REG_1, 0),
0150     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem),
0151     BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2),
0152     BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
0153     BPF_EMIT_CALL(BPF_FUNC_spin_lock),
0154     BPF_EXIT_INSN(),
0155     },
0156     .fixup_map_spin_lock = { 3 },
0157     .errstr = "tracing progs cannot use bpf_spin_lock yet",
0158     .result = REJECT,
0159     .prog_type = BPF_PROG_TYPE_TRACEPOINT,
0160 },
0161 {
0162     "bpf_spin_lock is forbidden in BPF_PROG_TYPE_PERF_EVENT",
0163     .insns = {
0164     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0165     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
0166     BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0),
0167     BPF_LD_MAP_FD(BPF_REG_1, 0),
0168     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem),
0169     BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2),
0170     BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
0171     BPF_EMIT_CALL(BPF_FUNC_spin_lock),
0172     BPF_EXIT_INSN(),
0173     },
0174     .fixup_map_spin_lock = { 3 },
0175     .errstr = "tracing progs cannot use bpf_spin_lock yet",
0176     .result = REJECT,
0177     .prog_type = BPF_PROG_TYPE_PERF_EVENT,
0178 },
0179 {
0180     "bpf_spin_lock is forbidden in BPF_PROG_TYPE_RAW_TRACEPOINT",
0181     .insns = {
0182     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0183     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
0184     BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0),
0185     BPF_LD_MAP_FD(BPF_REG_1, 0),
0186     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem),
0187     BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2),
0188     BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
0189     BPF_EMIT_CALL(BPF_FUNC_spin_lock),
0190     BPF_EXIT_INSN(),
0191     },
0192     .fixup_map_spin_lock = { 3 },
0193     .errstr = "tracing progs cannot use bpf_spin_lock yet",
0194     .result = REJECT,
0195     .prog_type = BPF_PROG_TYPE_RAW_TRACEPOINT,
0196 },