From: Ralf Baechle Date: Fri, 30 Jun 2006 12:56:13 +0000 (+0100) Subject: [PATCH] Fix freeing of net device X-Git-Tag: v2.6.18-rc1~6^2~4 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b07db75a9f542c1a1745fcb047fd743843db8daa;p=linux-2.6 [PATCH] Fix freeing of net device Plus optical sugar. Signed-off-by: Ralf Baechle Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/declance.c b/drivers/net/declance.c index 2038ca7e49..6ad5796121 100644 --- a/drivers/net/declance.c +++ b/drivers/net/declance.c @@ -703,8 +703,8 @@ static irqreturn_t lance_dma_merr_int(const int irq, void *dev_id, return IRQ_HANDLED; } -static irqreturn_t -lance_interrupt(const int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t lance_interrupt(const int irq, void *dev_id, + struct pt_regs *regs) { struct net_device *dev = (struct net_device *) dev_id; struct lance_private *lp = netdev_priv(dev); @@ -1253,7 +1253,7 @@ static int __init dec_lance_init(const int type, const int slot) return 0; err_out_free_dev: - kfree(dev); + free_netdev(dev); err_out: return ret; @@ -1299,6 +1299,7 @@ static void __exit dec_lance_cleanup(void) while (root_lance_dev) { struct net_device *dev = root_lance_dev; struct lance_private *lp = netdev_priv(dev); + unregister_netdev(dev); #ifdef CONFIG_TC if (lp->slot >= 0)