cls_api.c (802d00bd774b77fe132e9e83462b96fb9919411c) cls_api.c (5891cd5ec46c2c2eb6427cb54d214b149635dd0e)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * net/sched/cls_api.c Packet classifier API.
4 *
5 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
6 *
7 * Changes:
8 *

--- 1030 unchanged lines hidden (view full) ---

1039 dev = dev_get_by_index_rcu(net, ifindex);
1040 if (!dev) {
1041 rcu_read_unlock();
1042 return -ENODEV;
1043 }
1044
1045 /* Find qdisc */
1046 if (!*parent) {
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * net/sched/cls_api.c Packet classifier API.
4 *
5 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
6 *
7 * Changes:
8 *

--- 1030 unchanged lines hidden (view full) ---

1039 dev = dev_get_by_index_rcu(net, ifindex);
1040 if (!dev) {
1041 rcu_read_unlock();
1042 return -ENODEV;
1043 }
1044
1045 /* Find qdisc */
1046 if (!*parent) {
1047 *q = dev->qdisc;
1047 *q = rcu_dereference(dev->qdisc);
1048 *parent = (*q)->handle;
1049 } else {
1050 *q = qdisc_lookup_rcu(dev, TC_H_MAJ(*parent));
1051 if (!*q) {
1052 NL_SET_ERR_MSG(extack, "Parent Qdisc doesn't exists");
1053 err = -EINVAL;
1054 goto errout_rcu;
1055 }

--- 1526 unchanged lines hidden (view full) ---

2582 unsigned long cl = 0;
2583
2584 dev = __dev_get_by_index(net, tcm->tcm_ifindex);
2585 if (!dev)
2586 return skb->len;
2587
2588 parent = tcm->tcm_parent;
2589 if (!parent)
1048 *parent = (*q)->handle;
1049 } else {
1050 *q = qdisc_lookup_rcu(dev, TC_H_MAJ(*parent));
1051 if (!*q) {
1052 NL_SET_ERR_MSG(extack, "Parent Qdisc doesn't exists");
1053 err = -EINVAL;
1054 goto errout_rcu;
1055 }

--- 1526 unchanged lines hidden (view full) ---

2582 unsigned long cl = 0;
2583
2584 dev = __dev_get_by_index(net, tcm->tcm_ifindex);
2585 if (!dev)
2586 return skb->len;
2587
2588 parent = tcm->tcm_parent;
2589 if (!parent)
2590 q = dev->qdisc;
2590 q = rtnl_dereference(dev->qdisc);
2591 else
2592 q = qdisc_lookup(dev, TC_H_MAJ(tcm->tcm_parent));
2593 if (!q)
2594 goto out;
2595 cops = q->ops->cl_ops;
2596 if (!cops)
2597 goto out;
2598 if (!cops->tcf_block)

--- 358 unchanged lines hidden (view full) ---

2957 struct net_device *dev;
2958 unsigned long cl = 0;
2959
2960 dev = __dev_get_by_index(net, tcm->tcm_ifindex);
2961 if (!dev)
2962 return skb->len;
2963
2964 if (!tcm->tcm_parent)
2591 else
2592 q = qdisc_lookup(dev, TC_H_MAJ(tcm->tcm_parent));
2593 if (!q)
2594 goto out;
2595 cops = q->ops->cl_ops;
2596 if (!cops)
2597 goto out;
2598 if (!cops->tcf_block)

--- 358 unchanged lines hidden (view full) ---

2957 struct net_device *dev;
2958 unsigned long cl = 0;
2959
2960 dev = __dev_get_by_index(net, tcm->tcm_ifindex);
2961 if (!dev)
2962 return skb->len;
2963
2964 if (!tcm->tcm_parent)
2965 q = dev->qdisc;
2965 q = rtnl_dereference(dev->qdisc);
2966 else
2967 q = qdisc_lookup(dev, TC_H_MAJ(tcm->tcm_parent));
2968
2969 if (!q)
2970 goto out;
2971 cops = q->ops->cl_ops;
2972 if (!cops)
2973 goto out;

--- 776 unchanged lines hidden ---
2966 else
2967 q = qdisc_lookup(dev, TC_H_MAJ(tcm->tcm_parent));
2968
2969 if (!q)
2970 goto out;
2971 cops = q->ops->cl_ops;
2972 if (!cops)
2973 goto out;

--- 776 unchanged lines hidden ---