summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/net/sch_generic.h1
-rw-r--r--net/sched/sch_api.c7
2 files changed, 6 insertions, 2 deletions
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index a62677be7452..4db11c4695cf 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -830,7 +830,6 @@ static inline void qdisc_calculate_pkt_len(struct sk_buff *skb,
static inline int qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch,
struct sk_buff **to_free)
{
- qdisc_calculate_pkt_len(skb, sch);
return sch->enqueue(skb, sch, to_free);
}
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index 5c2d230790db..d0e4845ea701 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -589,7 +589,6 @@ out:
pkt_len = 1;
qdisc_skb_cb(skb)->pkt_len = pkt_len;
}
-EXPORT_SYMBOL(__qdisc_calculate_pkt_len);
void qdisc_warn_nonwc(const char *txt, struct Qdisc *qdisc)
{
@@ -1119,6 +1118,12 @@ skip:
return -EINVAL;
}
+ if (new &&
+ !(parent->flags & TCQ_F_MQROOT) &&
+ rcu_access_pointer(new->stab)) {
+ NL_SET_ERR_MSG(extack, "STAB not supported on a non root");
+ return -EINVAL;
+ }
err = cops->graft(parent, cl, new, &old, extack);
if (err)
return err;