X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=net%2Fsched%2Fsch_teql.c;h=1411c7b1fbdc4de0f7103cfb559a78369a4195cc;hb=1e90474c377e92db7262a8968a45c1dd980ca9e5;hp=421281d9dd1d3f9103b17c71b68b0d927d3807da;hpb=43cd73658d8077ee6899b0b5029aad0cba1e9f92;p=firefly-linux-kernel-4.4.55.git diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c index 421281d9dd1d..1411c7b1fbdc 100644 --- a/net/sched/sch_teql.c +++ b/net/sched/sch_teql.c @@ -168,7 +168,7 @@ teql_destroy(struct Qdisc* sch) } } -static int teql_qdisc_init(struct Qdisc *sch, struct rtattr *opt) +static int teql_qdisc_init(struct Qdisc *sch, struct nlattr *opt) { struct net_device *dev = sch->dev; struct teql_master *m = (struct teql_master*)sch->ops; @@ -252,6 +252,9 @@ __teql_resolve(struct sk_buff *skb, struct sk_buff *skb_res, struct net_device * static inline int teql_resolve(struct sk_buff *skb, struct sk_buff *skb_res, struct net_device *dev) { + if (dev->qdisc == &noop_qdisc) + return -ENODEV; + if (dev->header_ops == NULL || skb->dst == NULL || skb->dst->neighbour == NULL)