diff options
Diffstat (limited to 'drivers/net/ifb.c')
-rw-r--r-- | drivers/net/ifb.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c index 312fce7302d3..144ea5ae8ab4 100644 --- a/drivers/net/ifb.c +++ b/drivers/net/ifb.c | |||
@@ -207,7 +207,6 @@ static void ifb_dev_free(struct net_device *dev) | |||
207 | __skb_queue_purge(&txp->tq); | 207 | __skb_queue_purge(&txp->tq); |
208 | } | 208 | } |
209 | kfree(dp->tx_private); | 209 | kfree(dp->tx_private); |
210 | free_netdev(dev); | ||
211 | } | 210 | } |
212 | 211 | ||
213 | static void ifb_setup(struct net_device *dev) | 212 | static void ifb_setup(struct net_device *dev) |
@@ -230,7 +229,8 @@ static void ifb_setup(struct net_device *dev) | |||
230 | dev->priv_flags &= ~IFF_TX_SKB_SHARING; | 229 | dev->priv_flags &= ~IFF_TX_SKB_SHARING; |
231 | netif_keep_dst(dev); | 230 | netif_keep_dst(dev); |
232 | eth_hw_addr_random(dev); | 231 | eth_hw_addr_random(dev); |
233 | dev->destructor = ifb_dev_free; | 232 | dev->needs_free_netdev = true; |
233 | dev->priv_destructor = ifb_dev_free; | ||
234 | } | 234 | } |
235 | 235 | ||
236 | static netdev_tx_t ifb_xmit(struct sk_buff *skb, struct net_device *dev) | 236 | static netdev_tx_t ifb_xmit(struct sk_buff *skb, struct net_device *dev) |