1 { 2 "check bpf_perf_event_data->sample_period byte load permitted", 3 .insns = { 4 BPF_MOV64_IMM(BPF_REG_0, 0), 5 #if __BYTE_ORDER == __LITTLE_ENDIAN 6 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1, 7 offsetof(struct bpf_perf_event_data, sample_period)), 8 #else 9 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1, 10 offsetof(struct bpf_perf_event_data, sample_period) + 7), 11 #endif 12 BPF_EXIT_INSN(), 13 }, 14 .result = ACCEPT, 15 .prog_type = BPF_PROG_TYPE_PERF_EVENT, 16 }, 17 { 18 "check bpf_perf_event_data->sample_period half load permitted", 19 .insns = { 20 BPF_MOV64_IMM(BPF_REG_0, 0), 21 #if __BYTE_ORDER == __LITTLE_ENDIAN 22 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1, 23 offsetof(struct bpf_perf_event_data, sample_period)), 24 #else 25 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1, 26 offsetof(struct bpf_perf_event_data, sample_period) + 6), 27 #endif 28 BPF_EXIT_INSN(), 29 }, 30 .result = ACCEPT, 31 .prog_type = BPF_PROG_TYPE_PERF_EVENT, 32 }, 33 { 34 "check bpf_perf_event_data->sample_period word load permitted", 35 .insns = { 36 BPF_MOV64_IMM(BPF_REG_0, 0), 37 #if __BYTE_ORDER == __LITTLE_ENDIAN 38 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1, 39 offsetof(struct bpf_perf_event_data, sample_period)), 40 #else 41 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1, 42 offsetof(struct bpf_perf_event_data, sample_period) + 4), 43 #endif 44 BPF_EXIT_INSN(), 45 }, 46 .result = ACCEPT, 47 .prog_type = BPF_PROG_TYPE_PERF_EVENT, 48 }, 49 { 50 "check bpf_perf_event_data->sample_period dword load permitted", 51 .insns = { 52 BPF_MOV64_IMM(BPF_REG_0, 0), 53 BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_1, 54 offsetof(struct bpf_perf_event_data, sample_period)), 55 BPF_EXIT_INSN(), 56 }, 57 .result = ACCEPT, 58 .prog_type = BPF_PROG_TYPE_PERF_EVENT, 59 }, 60