CVSROOT: /home/cvs
Module name: linux
Changes by: ths@ftp.linux-mips.org 05/04/12 17:00:58
Modified files:
drivers/net : sgiseeq.c
Log message:
Fix resource handling.
diff -urN linux/drivers/net/sgiseeq.c linux/drivers/net/sgiseeq.c
--- linux/drivers/net/sgiseeq.c 2004/11/17 04:02:25 1.66
+++ linux/drivers/net/sgiseeq.c 2005/04/12 16:00:58 1.67
@@ -493,11 +493,13 @@
{
struct sgiseeq_private *sp = netdev_priv(dev);
struct sgiseeq_regs *sregs = sp->sregs;
+ unsigned int irq = dev->irq;
netif_stop_queue(dev);
/* Shutdown the Seeq. */
reset_hpc3_and_seeq(sp->hregs, sregs);
+ free_irq(irq, dev);
return 0;
}
@@ -734,7 +736,7 @@
return 0;
err_out_free_page:
- free_page((unsigned long) sp);
+ free_page((unsigned long) sp->srings);
err_out_free_dev:
kfree(dev);
@@ -754,15 +756,12 @@
{
struct net_device *next, *dev;
struct sgiseeq_private *sp;
- int irq;
for (dev = root_sgiseeq_dev; dev; dev = next) {
sp = (struct sgiseeq_private *) netdev_priv(dev);
next = sp->next_module;
- irq = dev->irq;
unregister_netdev(dev);
- free_irq(irq, dev);
- free_page((unsigned long) sp);
+ free_page((unsigned long) sp->srings);
free_netdev(dev);
}
}
|