18c2ecf20Sopenharmony_ci{ 28c2ecf20Sopenharmony_ci "unreachable", 38c2ecf20Sopenharmony_ci .insns = { 48c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 58c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 68c2ecf20Sopenharmony_ci }, 78c2ecf20Sopenharmony_ci .errstr = "unreachable", 88c2ecf20Sopenharmony_ci .result = REJECT, 98c2ecf20Sopenharmony_ci}, 108c2ecf20Sopenharmony_ci{ 118c2ecf20Sopenharmony_ci "unreachable2", 128c2ecf20Sopenharmony_ci .insns = { 138c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 1), 148c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 158c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 168c2ecf20Sopenharmony_ci }, 178c2ecf20Sopenharmony_ci .errstr = "unreachable", 188c2ecf20Sopenharmony_ci .result = REJECT, 198c2ecf20Sopenharmony_ci}, 208c2ecf20Sopenharmony_ci{ 218c2ecf20Sopenharmony_ci "out of range jump", 228c2ecf20Sopenharmony_ci .insns = { 238c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 1), 248c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 258c2ecf20Sopenharmony_ci }, 268c2ecf20Sopenharmony_ci .errstr = "jump out of range", 278c2ecf20Sopenharmony_ci .result = REJECT, 288c2ecf20Sopenharmony_ci}, 298c2ecf20Sopenharmony_ci{ 308c2ecf20Sopenharmony_ci "out of range jump2", 318c2ecf20Sopenharmony_ci .insns = { 328c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -2), 338c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 348c2ecf20Sopenharmony_ci }, 358c2ecf20Sopenharmony_ci .errstr = "jump out of range", 368c2ecf20Sopenharmony_ci .result = REJECT, 378c2ecf20Sopenharmony_ci}, 388c2ecf20Sopenharmony_ci{ 398c2ecf20Sopenharmony_ci "loop (back-edge)", 408c2ecf20Sopenharmony_ci .insns = { 418c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -1), 428c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 438c2ecf20Sopenharmony_ci }, 448c2ecf20Sopenharmony_ci .errstr = "unreachable insn 1", 458c2ecf20Sopenharmony_ci .errstr_unpriv = "back-edge", 468c2ecf20Sopenharmony_ci .result = REJECT, 478c2ecf20Sopenharmony_ci}, 488c2ecf20Sopenharmony_ci{ 498c2ecf20Sopenharmony_ci "loop2 (back-edge)", 508c2ecf20Sopenharmony_ci .insns = { 518c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_1, BPF_REG_0), 528c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_0), 538c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_3, BPF_REG_0), 548c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -4), 558c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 568c2ecf20Sopenharmony_ci }, 578c2ecf20Sopenharmony_ci .errstr = "unreachable insn 4", 588c2ecf20Sopenharmony_ci .errstr_unpriv = "back-edge", 598c2ecf20Sopenharmony_ci .result = REJECT, 608c2ecf20Sopenharmony_ci}, 618c2ecf20Sopenharmony_ci{ 628c2ecf20Sopenharmony_ci "conditional loop", 638c2ecf20Sopenharmony_ci .insns = { 648c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 658c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_0), 668c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_3, BPF_REG_0), 678c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, -3), 688c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 698c2ecf20Sopenharmony_ci }, 708c2ecf20Sopenharmony_ci .errstr = "infinite loop detected", 718c2ecf20Sopenharmony_ci .errstr_unpriv = "back-edge", 728c2ecf20Sopenharmony_ci .result = REJECT, 738c2ecf20Sopenharmony_ci}, 74