net_sched: remove list_head from tc_action
After commit90b73b77d0
, list_head is no longer needed. Now we just need to convert the list iteration to array iteration for drivers. Fixes:90b73b77d0
("net: sched: change action API to use array of pointers to actions") Cc: Jiri Pirko <jiri@mellanox.com> Cc: Vlad Buslov <vladbu@mellanox.com> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
7d485c451f
commit
244cd96adb
@ -23,7 +23,6 @@ struct tc_action {
|
||||
const struct tc_action_ops *ops;
|
||||
__u32 type; /* for backward compat(TCA_OLD_COMPAT) */
|
||||
__u32 order;
|
||||
struct list_head list;
|
||||
struct tcf_idrinfo *idrinfo;
|
||||
|
||||
u32 tcfa_index;
|
||||
|
@ -298,19 +298,13 @@ static inline void tcf_exts_put_net(struct tcf_exts *exts)
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void tcf_exts_to_list(const struct tcf_exts *exts,
|
||||
struct list_head *actions)
|
||||
{
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
int i;
|
||||
|
||||
for (i = 0; i < exts->nr_actions; i++) {
|
||||
struct tc_action *a = exts->actions[i];
|
||||
|
||||
list_add_tail(&a->list, actions);
|
||||
}
|
||||
#define tcf_exts_for_each_action(i, a, exts) \
|
||||
for (i = 0; i < TCA_ACT_MAX_PRIO && ((a) = (exts)->actions[i]); i++)
|
||||
#else
|
||||
#define tcf_exts_for_each_action(i, a, exts) \
|
||||
for (; 0; )
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void
|
||||
tcf_exts_stats_update(const struct tcf_exts *exts,
|
||||
@ -361,6 +355,15 @@ static inline bool tcf_exts_has_one_action(struct tcf_exts *exts)
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline struct tc_action *tcf_exts_first_action(struct tcf_exts *exts)
|
||||
{
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
return exts->actions[0];
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* tcf_exts_exec - execute tc filter extensions
|
||||
* @skb: socket buffer
|
||||
|
Reference in New Issue
Block a user