Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] sgiseeq: Fix resource handling.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

drivers/net/sgiseeq.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

authored by

Ralf Baechle and committed by
Jeff Garzik
2891439e bc053d45

+4 -5
+4 -5
drivers/net/sgiseeq.c
··· 493 493 { 494 494 struct sgiseeq_private *sp = netdev_priv(dev); 495 495 struct sgiseeq_regs *sregs = sp->sregs; 496 + unsigned int irq = dev->irq; 496 497 497 498 netif_stop_queue(dev); 498 499 499 500 /* Shutdown the Seeq. */ 500 501 reset_hpc3_and_seeq(sp->hregs, sregs); 502 + free_irq(irq, dev); 501 503 502 504 return 0; 503 505 } ··· 736 734 return 0; 737 735 738 736 err_out_free_page: 739 - free_page((unsigned long) sp); 737 + free_page((unsigned long) sp->srings); 740 738 err_out_free_dev: 741 739 kfree(dev); 742 740 ··· 756 754 { 757 755 struct net_device *next, *dev; 758 756 struct sgiseeq_private *sp; 759 - int irq; 760 757 761 758 for (dev = root_sgiseeq_dev; dev; dev = next) { 762 759 sp = (struct sgiseeq_private *) netdev_priv(dev); 763 760 next = sp->next_module; 764 - irq = dev->irq; 765 761 unregister_netdev(dev); 766 - free_irq(irq, dev); 767 - free_page((unsigned long) sp); 762 + free_page((unsigned long) sp->srings); 768 763 free_netdev(dev); 769 764 } 770 765 }