| .. | .. |
|---|
| 69 | 69 | struct bpf_prog *prog; |
|---|
| 70 | 70 | u16 *insns; /* RV insns */ |
|---|
| 71 | 71 | int ninsns; |
|---|
| 72 | + int prologue_len; |
|---|
| 72 | 73 | int epilogue_offset; |
|---|
| 73 | 74 | int *offset; /* BPF to RV */ |
|---|
| 74 | 75 | unsigned long flags; |
|---|
| .. | .. |
|---|
| 214 | 215 | int from, to; |
|---|
| 215 | 216 | |
|---|
| 216 | 217 | off++; /* BPF branch is from PC+1, RV is from PC */ |
|---|
| 217 | | - from = (insn > 0) ? ctx->offset[insn - 1] : 0; |
|---|
| 218 | | - to = (insn + off > 0) ? ctx->offset[insn + off - 1] : 0; |
|---|
| 218 | + from = (insn > 0) ? ctx->offset[insn - 1] : ctx->prologue_len; |
|---|
| 219 | + to = (insn + off > 0) ? ctx->offset[insn + off - 1] : ctx->prologue_len; |
|---|
| 219 | 220 | return ninsns_rvoff(to - from); |
|---|
| 220 | 221 | } |
|---|
| 221 | 222 | |
|---|