diff --git a/drivers/ipoe/ipoe.c b/drivers/ipoe/ipoe.c index 4951c5364771768145d1775dfc53e15ddbed0570..f3acb3f55118945762595644b9a70a1c806b8fad 100644 --- a/drivers/ipoe/ipoe.c +++ b/drivers/ipoe/ipoe.c @@ -784,13 +784,12 @@ static struct ipoe_session *ipoe_lookup_rt6(struct sk_buff *skb, const struct in if (!dst) return NULL; + *dev = dst->dev; + if (dst->error || dst->dev->netdev_ops != &ipoe_netdev_ops) { dst_release(dst); return NULL; } - - *dev = dst->dev; - ses = netdev_priv(*dev); atomic_inc(&ses->refs);