|
@@ -1004,28 +1004,6 @@ int tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts)
|
|
|
}
|
|
|
EXPORT_SYMBOL(tcf_exts_dump_stats);
|
|
|
|
|
|
-int tcf_exts_get_dev(struct net_device *dev, struct tcf_exts *exts,
|
|
|
- struct net_device **hw_dev)
|
|
|
-{
|
|
|
-#ifdef CONFIG_NET_CLS_ACT
|
|
|
- const struct tc_action *a;
|
|
|
- LIST_HEAD(actions);
|
|
|
-
|
|
|
- if (!tcf_exts_has_actions(exts))
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- tcf_exts_to_list(exts, &actions);
|
|
|
- list_for_each_entry(a, &actions, list) {
|
|
|
- if (a->ops->get_dev)
|
|
|
- *hw_dev = a->ops->get_dev(a);
|
|
|
- }
|
|
|
- if (*hw_dev)
|
|
|
- return 0;
|
|
|
-#endif
|
|
|
- return -EOPNOTSUPP;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(tcf_exts_get_dev);
|
|
|
-
|
|
|
static int tc_exts_setup_cb_egdev_call(struct tcf_exts *exts,
|
|
|
enum tc_setup_type type,
|
|
|
void *type_data, bool err_stop)
|