[PKT_SCHED]: Fix OOPS when removing devices from a teql queuing discipline
tecl_reset() is called from deactivate and qdisc is set to noop already, but subsequent teql_xmit does not know about it and dereference private data as teql qdisc and thus oopses. not catch it first :) Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
c62cf5cb17
commit
4f9f8311a0
@@ -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,
|
static inline int teql_resolve(struct sk_buff *skb,
|
||||||
struct sk_buff *skb_res, struct net_device *dev)
|
struct sk_buff *skb_res, struct net_device *dev)
|
||||||
{
|
{
|
||||||
|
if (dev->qdisc == &noop_qdisc)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
if (dev->header_ops == NULL ||
|
if (dev->header_ops == NULL ||
|
||||||
skb->dst == NULL ||
|
skb->dst == NULL ||
|
||||||
skb->dst->neighbour == NULL)
|
skb->dst->neighbour == NULL)
|
||||||
|
Reference in New Issue
Block a user