treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / tools / testing / selftests / bpf / verifier / jump.c
blob6f951d1ff0a44b3e02351f139cf64fdd8e648bfd
2 "jump test 1",
3 .insns = {
4 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
5 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, -8),
6 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1),
7 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0),
8 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 1),
9 BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 1),
10 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 1),
11 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 2),
12 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 1),
13 BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 3),
14 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 1),
15 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 4),
16 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1),
17 BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 5),
18 BPF_MOV64_IMM(BPF_REG_0, 0),
19 BPF_EXIT_INSN(),
21 .errstr_unpriv = "R1 pointer comparison",
22 .result_unpriv = REJECT,
23 .result = ACCEPT,
26 "jump test 2",
27 .insns = {
28 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
29 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 2),
30 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0),
31 BPF_JMP_IMM(BPF_JA, 0, 0, 14),
32 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 2),
33 BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0),
34 BPF_JMP_IMM(BPF_JA, 0, 0, 11),
35 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 2),
36 BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0),
37 BPF_JMP_IMM(BPF_JA, 0, 0, 8),
38 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 2),
39 BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0),
40 BPF_JMP_IMM(BPF_JA, 0, 0, 5),
41 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 2),
42 BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0),
43 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
44 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1),
45 BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0),
46 BPF_MOV64_IMM(BPF_REG_0, 0),
47 BPF_EXIT_INSN(),
49 .errstr_unpriv = "R1 pointer comparison",
50 .result_unpriv = REJECT,
51 .result = ACCEPT,
54 "jump test 3",
55 .insns = {
56 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
57 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 3),
58 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0),
59 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
60 BPF_JMP_IMM(BPF_JA, 0, 0, 19),
61 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 3),
62 BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0),
63 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -16),
64 BPF_JMP_IMM(BPF_JA, 0, 0, 15),
65 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 3),
66 BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0),
67 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -32),
68 BPF_JMP_IMM(BPF_JA, 0, 0, 11),
69 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 3),
70 BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0),
71 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -40),
72 BPF_JMP_IMM(BPF_JA, 0, 0, 7),
73 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 3),
74 BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0),
75 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -48),
76 BPF_JMP_IMM(BPF_JA, 0, 0, 3),
77 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 0),
78 BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0),
79 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -56),
80 BPF_LD_MAP_FD(BPF_REG_1, 0),
81 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_delete_elem),
82 BPF_EXIT_INSN(),
84 .fixup_map_hash_8b = { 24 },
85 .errstr_unpriv = "R1 pointer comparison",
86 .result_unpriv = REJECT,
87 .result = ACCEPT,
88 .retval = -ENOENT,
91 "jump test 4",
92 .insns = {
93 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
94 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
95 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
96 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
97 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
98 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
99 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
100 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
101 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
102 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
103 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
104 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
105 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
106 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
107 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
108 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
109 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
110 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
111 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
112 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
113 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
114 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
115 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
116 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
117 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
118 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
119 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
120 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
121 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
122 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
123 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
124 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
125 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
126 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
127 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
128 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
129 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),
130 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),
131 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),
132 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),
133 BPF_MOV64_IMM(BPF_REG_0, 0),
134 BPF_EXIT_INSN(),
136 .errstr_unpriv = "R1 pointer comparison",
137 .result_unpriv = REJECT,
138 .result = ACCEPT,
141 "jump test 5",
142 .insns = {
143 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
144 BPF_MOV64_REG(BPF_REG_3, BPF_REG_2),
145 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
146 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
147 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
148 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
149 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
150 BPF_MOV64_IMM(BPF_REG_0, 0),
151 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
152 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
153 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
154 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
155 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
156 BPF_MOV64_IMM(BPF_REG_0, 0),
157 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
158 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
159 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
160 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
161 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
162 BPF_MOV64_IMM(BPF_REG_0, 0),
163 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
164 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
165 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
166 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
167 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
168 BPF_MOV64_IMM(BPF_REG_0, 0),
169 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
170 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
171 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
172 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
173 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
174 BPF_MOV64_IMM(BPF_REG_0, 0),
175 BPF_EXIT_INSN(),
177 .errstr_unpriv = "R1 pointer comparison",
178 .result_unpriv = REJECT,
179 .result = ACCEPT,
182 "jump test 6",
183 .insns = {
184 BPF_MOV64_IMM(BPF_REG_0, 1),
185 BPF_MOV64_IMM(BPF_REG_1, 2),
186 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
187 BPF_MOV64_IMM(BPF_REG_0, 2),
188 BPF_EXIT_INSN(),
189 BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16),
190 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
191 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
192 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
193 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
194 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
195 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
196 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
197 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
198 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
199 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
200 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
201 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
202 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
203 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
204 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
205 BPF_JMP_IMM(BPF_JA, 0, 0, 0),
206 BPF_JMP_IMM(BPF_JA, 0, 0, -20),
208 .result = ACCEPT,
209 .retval = 2,
212 "jump test 7",
213 .insns = {
214 BPF_MOV64_IMM(BPF_REG_0, 1),
215 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
216 BPF_MOV64_IMM(BPF_REG_0, 3),
217 BPF_EXIT_INSN(),
218 BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16),
219 BPF_MOV64_IMM(BPF_REG_0, 42),
220 BPF_MOV64_IMM(BPF_REG_0, 42),
221 BPF_MOV64_IMM(BPF_REG_0, 42),
222 BPF_MOV64_IMM(BPF_REG_0, 42),
223 BPF_MOV64_IMM(BPF_REG_0, 42),
224 BPF_MOV64_IMM(BPF_REG_0, 42),
225 BPF_MOV64_IMM(BPF_REG_0, 42),
226 BPF_MOV64_IMM(BPF_REG_0, 42),
227 BPF_MOV64_IMM(BPF_REG_0, 42),
228 BPF_MOV64_IMM(BPF_REG_0, 42),
229 BPF_MOV64_IMM(BPF_REG_0, 42),
230 BPF_MOV64_IMM(BPF_REG_0, 42),
231 BPF_MOV64_IMM(BPF_REG_0, 42),
232 BPF_MOV64_IMM(BPF_REG_0, 42),
233 BPF_MOV64_IMM(BPF_REG_0, 42),
234 BPF_MOV64_IMM(BPF_REG_0, 42),
235 BPF_JMP_IMM(BPF_JA, 0, 0, -20),
237 .result = ACCEPT,
238 .retval = 3,
241 "jump test 8",
242 .insns = {
243 BPF_MOV64_IMM(BPF_REG_0, 1),
244 BPF_MOV64_IMM(BPF_REG_1, 2),
245 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
246 BPF_MOV64_IMM(BPF_REG_0, 3),
247 BPF_EXIT_INSN(),
248 BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16),
249 BPF_MOV64_IMM(BPF_REG_0, 42),
250 BPF_MOV64_IMM(BPF_REG_0, 42),
251 BPF_MOV64_IMM(BPF_REG_0, 42),
252 BPF_MOV64_IMM(BPF_REG_0, 42),
253 BPF_MOV64_IMM(BPF_REG_0, 42),
254 BPF_MOV64_IMM(BPF_REG_0, 42),
255 BPF_MOV64_IMM(BPF_REG_0, 42),
256 BPF_MOV64_IMM(BPF_REG_0, 42),
257 BPF_MOV64_IMM(BPF_REG_0, 42),
258 BPF_MOV64_IMM(BPF_REG_0, 42),
259 BPF_MOV64_IMM(BPF_REG_0, 42),
260 BPF_MOV64_IMM(BPF_REG_0, 42),
261 BPF_MOV64_IMM(BPF_REG_0, 42),
262 BPF_MOV64_IMM(BPF_REG_0, 42),
263 BPF_MOV64_IMM(BPF_REG_0, 42),
264 BPF_MOV64_IMM(BPF_REG_0, 42),
265 BPF_JMP_IMM(BPF_JA, 0, 0, -20),
267 .result = ACCEPT,
268 .retval = 3,
271 "jump/call test 9",
272 .insns = {
273 BPF_MOV64_IMM(BPF_REG_0, 1),
274 BPF_JMP_IMM(BPF_JA, 0, 0, 2),
275 BPF_MOV64_IMM(BPF_REG_0, 3),
276 BPF_EXIT_INSN(),
277 BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16),
278 BPF_MOV64_IMM(BPF_REG_0, 42),
279 BPF_MOV64_IMM(BPF_REG_0, 42),
280 BPF_MOV64_IMM(BPF_REG_0, 42),
281 BPF_MOV64_IMM(BPF_REG_0, 42),
282 BPF_MOV64_IMM(BPF_REG_0, 42),
283 BPF_MOV64_IMM(BPF_REG_0, 42),
284 BPF_MOV64_IMM(BPF_REG_0, 42),
285 BPF_MOV64_IMM(BPF_REG_0, 42),
286 BPF_MOV64_IMM(BPF_REG_0, 42),
287 BPF_MOV64_IMM(BPF_REG_0, 42),
288 BPF_MOV64_IMM(BPF_REG_0, 42),
289 BPF_MOV64_IMM(BPF_REG_0, 42),
290 BPF_MOV64_IMM(BPF_REG_0, 42),
291 BPF_MOV64_IMM(BPF_REG_0, 42),
292 BPF_MOV64_IMM(BPF_REG_0, 42),
293 BPF_MOV64_IMM(BPF_REG_0, 42),
294 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20),
295 BPF_EXIT_INSN(),
297 .prog_type = BPF_PROG_TYPE_SCHED_CLS,
298 .result = REJECT,
299 .errstr = "jump out of range from insn 1 to 4",
302 "jump/call test 10",
303 .insns = {
304 BPF_MOV64_IMM(BPF_REG_0, 1),
305 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 2),
306 BPF_MOV64_IMM(BPF_REG_0, 3),
307 BPF_EXIT_INSN(),
308 BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16),
309 BPF_MOV64_IMM(BPF_REG_0, 42),
310 BPF_MOV64_IMM(BPF_REG_0, 42),
311 BPF_MOV64_IMM(BPF_REG_0, 42),
312 BPF_MOV64_IMM(BPF_REG_0, 42),
313 BPF_MOV64_IMM(BPF_REG_0, 42),
314 BPF_MOV64_IMM(BPF_REG_0, 42),
315 BPF_MOV64_IMM(BPF_REG_0, 42),
316 BPF_MOV64_IMM(BPF_REG_0, 42),
317 BPF_MOV64_IMM(BPF_REG_0, 42),
318 BPF_MOV64_IMM(BPF_REG_0, 42),
319 BPF_MOV64_IMM(BPF_REG_0, 42),
320 BPF_MOV64_IMM(BPF_REG_0, 42),
321 BPF_MOV64_IMM(BPF_REG_0, 42),
322 BPF_MOV64_IMM(BPF_REG_0, 42),
323 BPF_MOV64_IMM(BPF_REG_0, 42),
324 BPF_MOV64_IMM(BPF_REG_0, 42),
325 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20),
326 BPF_EXIT_INSN(),
328 .prog_type = BPF_PROG_TYPE_SCHED_CLS,
329 .result = REJECT,
330 .errstr = "last insn is not an exit or jmp",
333 "jump/call test 11",
334 .insns = {
335 BPF_MOV64_IMM(BPF_REG_0, 1),
336 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 4),
337 BPF_MOV64_IMM(BPF_REG_0, 3),
338 BPF_EXIT_INSN(),
339 BPF_MOV64_IMM(BPF_REG_0, 3),
340 BPF_EXIT_INSN(),
341 BPF_MOV64_IMM(BPF_REG_0, 1),
342 BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 26),
343 BPF_MOV64_IMM(BPF_REG_0, 42),
344 BPF_MOV64_IMM(BPF_REG_0, 42),
345 BPF_MOV64_IMM(BPF_REG_0, 42),
346 BPF_MOV64_IMM(BPF_REG_0, 42),
347 BPF_MOV64_IMM(BPF_REG_0, 42),
348 BPF_MOV64_IMM(BPF_REG_0, 42),
349 BPF_MOV64_IMM(BPF_REG_0, 42),
350 BPF_MOV64_IMM(BPF_REG_0, 42),
351 BPF_MOV64_IMM(BPF_REG_0, 42),
352 BPF_MOV64_IMM(BPF_REG_0, 42),
353 BPF_MOV64_IMM(BPF_REG_0, 42),
354 BPF_MOV64_IMM(BPF_REG_0, 42),
355 BPF_MOV64_IMM(BPF_REG_0, 42),
356 BPF_MOV64_IMM(BPF_REG_0, 42),
357 BPF_MOV64_IMM(BPF_REG_0, 42),
358 BPF_MOV64_IMM(BPF_REG_0, 42),
359 BPF_MOV64_IMM(BPF_REG_0, 42),
360 BPF_MOV64_IMM(BPF_REG_0, 42),
361 BPF_MOV64_IMM(BPF_REG_0, 42),
362 BPF_MOV64_IMM(BPF_REG_0, 42),
363 BPF_MOV64_IMM(BPF_REG_0, 42),
364 BPF_MOV64_IMM(BPF_REG_0, 42),
365 BPF_MOV64_IMM(BPF_REG_0, 42),
366 BPF_MOV64_IMM(BPF_REG_0, 42),
367 BPF_MOV64_IMM(BPF_REG_0, 42),
368 BPF_MOV64_IMM(BPF_REG_0, 42),
369 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -31),
370 BPF_EXIT_INSN(),
372 .prog_type = BPF_PROG_TYPE_SCHED_CLS,
373 .result = ACCEPT,
374 .retval = 3,