mirror of https://gitee.com/openkylin/linux.git
net: sched: remove tcf block API
Unused, now replaced by flow block API. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
955bcb6ea0
commit
722d36e6e2
|
@ -66,22 +66,6 @@ static inline struct Qdisc *tcf_block_q(struct tcf_block *block)
|
||||||
return block->q;
|
return block->q;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *tcf_block_cb_priv(struct tcf_block_cb *block_cb);
|
|
||||||
struct tcf_block_cb *tcf_block_cb_lookup(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident);
|
|
||||||
void tcf_block_cb_incref(struct tcf_block_cb *block_cb);
|
|
||||||
unsigned int tcf_block_cb_decref(struct tcf_block_cb *block_cb);
|
|
||||||
struct tcf_block_cb *__tcf_block_cb_register(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident,
|
|
||||||
void *cb_priv,
|
|
||||||
struct netlink_ext_ack *extack);
|
|
||||||
int tcf_block_cb_register(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident,
|
|
||||||
void *cb_priv, struct netlink_ext_ack *extack);
|
|
||||||
void __tcf_block_cb_unregister(struct tcf_block *block,
|
|
||||||
struct tcf_block_cb *block_cb);
|
|
||||||
void tcf_block_cb_unregister(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident);
|
|
||||||
int __tc_indr_block_cb_register(struct net_device *dev, void *cb_priv,
|
int __tc_indr_block_cb_register(struct net_device *dev, void *cb_priv,
|
||||||
tc_indr_block_bind_cb_t *cb, void *cb_ident);
|
tc_indr_block_bind_cb_t *cb, void *cb_ident);
|
||||||
int tc_indr_block_cb_register(struct net_device *dev, void *cb_priv,
|
int tc_indr_block_cb_register(struct net_device *dev, void *cb_priv,
|
||||||
|
@ -144,59 +128,6 @@ void tc_setup_cb_block_unregister(struct tcf_block *block, tc_setup_cb_t *cb,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
|
||||||
void *tcf_block_cb_priv(struct tcf_block_cb *block_cb)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
struct tcf_block_cb *tcf_block_cb_lookup(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
void tcf_block_cb_incref(struct tcf_block_cb *block_cb)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
unsigned int tcf_block_cb_decref(struct tcf_block_cb *block_cb)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
struct tcf_block_cb *__tcf_block_cb_register(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident,
|
|
||||||
void *cb_priv,
|
|
||||||
struct netlink_ext_ack *extack)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
int tcf_block_cb_register(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident,
|
|
||||||
void *cb_priv, struct netlink_ext_ack *extack)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
void __tcf_block_cb_unregister(struct tcf_block *block,
|
|
||||||
struct tcf_block_cb *block_cb)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
void tcf_block_cb_unregister(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
int __tc_indr_block_cb_register(struct net_device *dev, void *cb_priv,
|
int __tc_indr_block_cb_register(struct net_device *dev, void *cb_priv,
|
||||||
tc_indr_block_bind_cb_t *cb, void *cb_ident)
|
tc_indr_block_bind_cb_t *cb, void *cb_ident)
|
||||||
|
|
|
@ -1513,43 +1513,6 @@ void tcf_block_put(struct tcf_block *block)
|
||||||
|
|
||||||
EXPORT_SYMBOL(tcf_block_put);
|
EXPORT_SYMBOL(tcf_block_put);
|
||||||
|
|
||||||
struct tcf_block_cb {
|
|
||||||
struct list_head list;
|
|
||||||
tc_setup_cb_t *cb;
|
|
||||||
void *cb_ident;
|
|
||||||
void *cb_priv;
|
|
||||||
unsigned int refcnt;
|
|
||||||
};
|
|
||||||
|
|
||||||
void *tcf_block_cb_priv(struct tcf_block_cb *block_cb)
|
|
||||||
{
|
|
||||||
return block_cb->cb_priv;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(tcf_block_cb_priv);
|
|
||||||
|
|
||||||
struct tcf_block_cb *tcf_block_cb_lookup(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident)
|
|
||||||
{ struct tcf_block_cb *block_cb;
|
|
||||||
|
|
||||||
list_for_each_entry(block_cb, &block->cb_list, list)
|
|
||||||
if (block_cb->cb == cb && block_cb->cb_ident == cb_ident)
|
|
||||||
return block_cb;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(tcf_block_cb_lookup);
|
|
||||||
|
|
||||||
void tcf_block_cb_incref(struct tcf_block_cb *block_cb)
|
|
||||||
{
|
|
||||||
block_cb->refcnt++;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(tcf_block_cb_incref);
|
|
||||||
|
|
||||||
unsigned int tcf_block_cb_decref(struct tcf_block_cb *block_cb)
|
|
||||||
{
|
|
||||||
return --block_cb->refcnt;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(tcf_block_cb_decref);
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
tcf_block_playback_offloads(struct tcf_block *block, tc_setup_cb_t *cb,
|
tcf_block_playback_offloads(struct tcf_block *block, tc_setup_cb_t *cb,
|
||||||
void *cb_priv, bool add, bool offload_in_use,
|
void *cb_priv, bool add, bool offload_in_use,
|
||||||
|
@ -1591,67 +1554,6 @@ tcf_block_playback_offloads(struct tcf_block *block, tc_setup_cb_t *cb,
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tcf_block_cb *__tcf_block_cb_register(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident,
|
|
||||||
void *cb_priv,
|
|
||||||
struct netlink_ext_ack *extack)
|
|
||||||
{
|
|
||||||
struct tcf_block_cb *block_cb;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
/* Replay any already present rules */
|
|
||||||
err = tcf_block_playback_offloads(block, cb, cb_priv, true,
|
|
||||||
tcf_block_offload_in_use(block),
|
|
||||||
extack);
|
|
||||||
if (err)
|
|
||||||
return ERR_PTR(err);
|
|
||||||
|
|
||||||
block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL);
|
|
||||||
if (!block_cb)
|
|
||||||
return ERR_PTR(-ENOMEM);
|
|
||||||
block_cb->cb = cb;
|
|
||||||
block_cb->cb_ident = cb_ident;
|
|
||||||
block_cb->cb_priv = cb_priv;
|
|
||||||
list_add(&block_cb->list, &block->cb_list);
|
|
||||||
return block_cb;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(__tcf_block_cb_register);
|
|
||||||
|
|
||||||
int tcf_block_cb_register(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident,
|
|
||||||
void *cb_priv, struct netlink_ext_ack *extack)
|
|
||||||
{
|
|
||||||
struct tcf_block_cb *block_cb;
|
|
||||||
|
|
||||||
block_cb = __tcf_block_cb_register(block, cb, cb_ident, cb_priv,
|
|
||||||
extack);
|
|
||||||
return PTR_ERR_OR_ZERO(block_cb);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(tcf_block_cb_register);
|
|
||||||
|
|
||||||
void __tcf_block_cb_unregister(struct tcf_block *block,
|
|
||||||
struct tcf_block_cb *block_cb)
|
|
||||||
{
|
|
||||||
tcf_block_playback_offloads(block, block_cb->cb, block_cb->cb_priv,
|
|
||||||
false, tcf_block_offload_in_use(block),
|
|
||||||
NULL);
|
|
||||||
list_del(&block_cb->list);
|
|
||||||
kfree(block_cb);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(__tcf_block_cb_unregister);
|
|
||||||
|
|
||||||
void tcf_block_cb_unregister(struct tcf_block *block,
|
|
||||||
tc_setup_cb_t *cb, void *cb_ident)
|
|
||||||
{
|
|
||||||
struct tcf_block_cb *block_cb;
|
|
||||||
|
|
||||||
block_cb = tcf_block_cb_lookup(block, cb, cb_ident);
|
|
||||||
if (!block_cb)
|
|
||||||
return;
|
|
||||||
__tcf_block_cb_unregister(block, block_cb);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(tcf_block_cb_unregister);
|
|
||||||
|
|
||||||
static int tcf_block_bind(struct tcf_block *block,
|
static int tcf_block_bind(struct tcf_block *block,
|
||||||
struct flow_block_offload *bo)
|
struct flow_block_offload *bo)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue