git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ethdev: reserve space in main structs for extension
[dpdk.git]
/
lib
/
librte_bpf
/
bpf_validate.c
diff --git
a/lib/librte_bpf/bpf_validate.c
b/lib/librte_bpf/bpf_validate.c
index
0cf41fa
..
6bd6f78
100644
(file)
--- a/
lib/librte_bpf/bpf_validate.c
+++ b/
lib/librte_bpf/bpf_validate.c
@@
-15,6
+15,8
@@
#include "bpf_impl.h"
#include "bpf_impl.h"
+#define BPF_ARG_PTR_STACK RTE_BPF_ARG_RESERVED
+
struct bpf_reg_val {
struct rte_bpf_arg v;
uint64_t mask;
struct bpf_reg_val {
struct rte_bpf_arg v;
uint64_t mask;
@@
-710,7
+712,7
@@
eval_ptr(struct bpf_verifier *bvf, struct bpf_reg_val *rm, uint32_t opsz,
if (rm->u.max % align != 0)
return "unaligned memory access";
if (rm->u.max % align != 0)
return "unaligned memory access";
- if (rm->v.type ==
RTE_
BPF_ARG_PTR_STACK) {
+ if (rm->v.type == BPF_ARG_PTR_STACK) {
if (rm->u.max != rm->u.min || rm->s.max != rm->s.min ||
rm->u.max != (uint64_t)rm->s.max)
if (rm->u.max != rm->u.min || rm->s.max != rm->s.min ||
rm->u.max != (uint64_t)rm->s.max)
@@
-764,7
+766,7
@@
eval_load(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
if (err != NULL)
return err;
if (err != NULL)
return err;
- if (rs.v.type ==
RTE_
BPF_ARG_PTR_STACK) {
+ if (rs.v.type == BPF_ARG_PTR_STACK) {
sv = st->sv + rs.u.max / sizeof(uint64_t);
if (sv->v.type == RTE_BPF_ARG_UNDEF || sv->mask < msk)
sv = st->sv + rs.u.max / sizeof(uint64_t);
if (sv->v.type == RTE_BPF_ARG_UNDEF || sv->mask < msk)
@@
-859,7
+861,7
@@
eval_store(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
if (err != NULL)
return err;
if (err != NULL)
return err;
- if (rd.v.type ==
RTE_
BPF_ARG_PTR_STACK) {
+ if (rd.v.type == BPF_ARG_PTR_STACK) {
sv = st->sv + rd.u.max / sizeof(uint64_t);
if (BPF_CLASS(ins->code) == BPF_STX &&
sv = st->sv + rd.u.max / sizeof(uint64_t);
if (BPF_CLASS(ins->code) == BPF_STX &&
@@
-908,7
+910,7
@@
eval_func_arg(struct bpf_verifier *bvf, const struct rte_bpf_arg *arg,
* pointer to the variable on the stack is passed
* as an argument, mark stack space it occupies as initialized.
*/
* pointer to the variable on the stack is passed
* as an argument, mark stack space it occupies as initialized.
*/
- if (err == NULL && rv->v.type ==
RTE_
BPF_ARG_PTR_STACK) {
+ if (err == NULL && rv->v.type == BPF_ARG_PTR_STACK) {
i = rv->u.max / sizeof(uint64_t);
n = i + arg->size / sizeof(uint64_t);
i = rv->u.max / sizeof(uint64_t);
n = i + arg->size / sizeof(uint64_t);
@@
-2131,7
+2133,7
@@
evaluate(struct bpf_verifier *bvf)
/* initial state of frame pointer */
static const struct bpf_reg_val rvfp = {
.v = {
/* initial state of frame pointer */
static const struct bpf_reg_val rvfp = {
.v = {
- .type =
RTE_
BPF_ARG_PTR_STACK,
+ .type = BPF_ARG_PTR_STACK,
.size = MAX_BPF_STACK_SIZE,
},
.mask = UINT64_MAX,
.size = MAX_BPF_STACK_SIZE,
},
.mask = UINT64_MAX,