140f2fbd5SJakub Kicinski { 240f2fbd5SJakub Kicinski "empty prog", 340f2fbd5SJakub Kicinski .insns = { 440f2fbd5SJakub Kicinski }, 5*bf88a80aSHao Luo .errstr = "last insn is not an exit or jmp", 640f2fbd5SJakub Kicinski .result = REJECT, 740f2fbd5SJakub Kicinski }, 840f2fbd5SJakub Kicinski { 940f2fbd5SJakub Kicinski "only exit insn", 1040f2fbd5SJakub Kicinski .insns = { 1140f2fbd5SJakub Kicinski BPF_EXIT_INSN(), 1240f2fbd5SJakub Kicinski }, 1340f2fbd5SJakub Kicinski .errstr = "R0 !read_ok", 1440f2fbd5SJakub Kicinski .result = REJECT, 1540f2fbd5SJakub Kicinski }, 1640f2fbd5SJakub Kicinski { 1740f2fbd5SJakub Kicinski "no bpf_exit", 1840f2fbd5SJakub Kicinski .insns = { 1940f2fbd5SJakub Kicinski BPF_ALU64_REG(BPF_MOV, BPF_REG_0, BPF_REG_2), 2040f2fbd5SJakub Kicinski }, 2140f2fbd5SJakub Kicinski .errstr = "not an exit", 2240f2fbd5SJakub Kicinski .result = REJECT, 2340f2fbd5SJakub Kicinski }, 24