Skip to content

Commit 67bd0d5

Browse files
ummakynesdavem330
authored andcommitted
net: flow_offload: add flow_block_cb_{priv, incref, decref}()
This patch completes the flow block API to introduce: * flow_block_cb_priv() to access callback private data. * flow_block_cb_incref() to bump reference counter on this flow block. * flow_block_cb_decref() to decrement the reference counter. These functions are taken from the existing tcf_block_cb_priv(), tcf_block_cb_incref() and tcf_block_cb_decref(). Signed-off-by: Pablo Neira Ayuso <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent da3eeb9 commit 67bd0d5

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

include/net/flow_offload.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,10 @@ void flow_block_cb_free(struct flow_block_cb *block_cb);
281281
struct flow_block_cb *flow_block_cb_lookup(struct flow_block_offload *offload,
282282
tc_setup_cb_t *cb, void *cb_ident);
283283

284+
void *flow_block_cb_priv(struct flow_block_cb *block_cb);
285+
void flow_block_cb_incref(struct flow_block_cb *block_cb);
286+
unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb);
287+
284288
static inline void flow_block_cb_add(struct flow_block_cb *block_cb,
285289
struct flow_block_offload *offload)
286290
{

net/core/flow_offload.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,24 @@ struct flow_block_cb *flow_block_cb_lookup(struct flow_block_offload *f,
211211
}
212212
EXPORT_SYMBOL(flow_block_cb_lookup);
213213

214+
void *flow_block_cb_priv(struct flow_block_cb *block_cb)
215+
{
216+
return block_cb->cb_priv;
217+
}
218+
EXPORT_SYMBOL(flow_block_cb_priv);
219+
220+
void flow_block_cb_incref(struct flow_block_cb *block_cb)
221+
{
222+
block_cb->refcnt++;
223+
}
224+
EXPORT_SYMBOL(flow_block_cb_incref);
225+
226+
unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb)
227+
{
228+
return --block_cb->refcnt;
229+
}
230+
EXPORT_SYMBOL(flow_block_cb_decref);
231+
214232
int flow_block_cb_setup_simple(struct flow_block_offload *f,
215233
struct list_head *driver_block_list,
216234
tc_setup_cb_t *cb, void *cb_ident, void *cb_priv,

0 commit comments

Comments
 (0)