.. | .. |
---|
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 | |
---|