if (ret)
goto out;
- nfp_prog->num_regs = MAX_BPF_REG;
- nfp_prog->regs_per_thread = 32;
-
nfp_prog->prog = prog_mem;
nfp_prog->__prog_alloc_len = prog_sz;
ret = nfp_bpf_ustore_calc(nfp_prog, (__force __le64 *)prog_mem);
res->n_instr = nfp_prog->prog_len;
- res->dense_mode = false;
out:
nfp_prog_free(nfp_prog);
* @prog_len: number of valid instructions in @prog array
* @__prog_alloc_len: alloc size of @prog array
* @type: BPF program type
- * @num_regs: number of registers used by this program
- * @regs_per_thread: number of basic registers allocated per thread
* @start_off: address of the first instruction in the memory
* @tgt_out: jump target for normal exit
* @tgt_abort: jump target for abort (e.g. access outside of packet buffer)
enum bpf_prog_type type;
- unsigned int num_regs;
- unsigned int regs_per_thread;
-
unsigned int start_off;
unsigned int tgt_out;
unsigned int tgt_abort;
struct nfp_bpf_result {
unsigned int n_instr;
- bool dense_mode;
};
int
static void
nfp_net_bpf_load_and_start(struct nfp_net *nn, u32 tc_flags,
void *code, dma_addr_t dma_addr,
- unsigned int code_sz, unsigned int n_instr,
- bool dense_mode)
+ unsigned int code_sz, unsigned int n_instr)
{
- u64 bpf_addr = dma_addr;
int err;
nn->dp.bpf_offload_skip_sw = !!(tc_flags & TCA_CLS_FLAGS_SKIP_SW);
- if (dense_mode)
- bpf_addr |= NFP_NET_CFG_BPF_CFG_8CTX;
-
nn_writew(nn, NFP_NET_CFG_BPF_SIZE, n_instr);
- nn_writeq(nn, NFP_NET_CFG_BPF_ADDR, bpf_addr);
+ nn_writeq(nn, NFP_NET_CFG_BPF_ADDR, dma_addr);
/* Load up the JITed code */
err = nfp_net_reconfig(nn, NFP_NET_CFG_UPDATE_BPF);
nfp_net_bpf_stop(nn);
nfp_net_bpf_load_and_start(nn, cls_bpf->gen_flags, code,
dma_addr, max_instr * sizeof(u64),
- res.n_instr, res.dense_mode);
+ res.n_instr);
return 0;
case TC_CLSBPF_ADD:
nfp_net_bpf_load_and_start(nn, cls_bpf->gen_flags, code,
dma_addr, max_instr * sizeof(u64),
- res.n_instr, res.dense_mode);
+ res.n_instr);
return 0;
case TC_CLSBPF_DESTROY: