projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1c03e03
)
nfp: bpf: byte swap the instructions
author
Jakub Kicinski
<
[email protected]
>
Mon, 9 Oct 2017 04:04:16 +0000
(21:04 -0700)
committer
David S. Miller
<
[email protected]
>
Mon, 9 Oct 2017 16:51:03 +0000
(09:51 -0700)
Device expects the instructions in little endian. Make sure we
byte swap on big endian hosts.
Signed-off-by: Jakub Kicinski <
[email protected]
>
Reviewed-by: Simon Horman <
[email protected]
>
Signed-off-by: David S. Miller <
[email protected]
>
drivers/net/ethernet/netronome/nfp/bpf/jit.c
patch
|
blob
|
history
diff --git
a/drivers/net/ethernet/netronome/nfp/bpf/jit.c
b/drivers/net/ethernet/netronome/nfp/bpf/jit.c
index e0600d0377738859d9e25e0290a34773781a2331..f68052367db708d11142ef5fab2a434c350cf7cf 100644
(file)
--- a/
drivers/net/ethernet/netronome/nfp/bpf/jit.c
+++ b/
drivers/net/ethernet/netronome/nfp/bpf/jit.c
@@
-1725,7
+1725,7
@@
static int nfp_bpf_optimize(struct nfp_prog *nfp_prog)
return 0;
}
-static int nfp_bpf_ustore_calc(struct nfp_prog *nfp_prog)
+static int nfp_bpf_ustore_calc(struct nfp_prog *nfp_prog
, __le64 *ustore
)
{
int i;
@@
-1737,6
+1737,8
@@
static int nfp_bpf_ustore_calc(struct nfp_prog *nfp_prog)
return err;
nfp_prog->prog[i] = nfp_ustore_calc_ecc_insn(nfp_prog->prog[i]);
+
+ ustore[i] = cpu_to_le64(nfp_prog->prog[i]);
}
return 0;
@@
-1796,7
+1798,7
@@
nfp_bpf_jit(struct bpf_prog *filter, void *prog_mem,
goto out;
}
- ret = nfp_bpf_ustore_calc(nfp_prog);
+ ret = nfp_bpf_ustore_calc(nfp_prog
, (__force __le64 *)prog_mem
);
res->n_instr = nfp_prog->prog_len;
res->dense_mode = false;