diff options
Diffstat (limited to 'drivers/net/sgiseeq.c')
-rw-r--r-- | drivers/net/sgiseeq.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/sgiseeq.c b/drivers/net/sgiseeq.c index 9bc3b1c0dd6a..a9d2e4fd0aec 100644 --- a/drivers/net/sgiseeq.c +++ b/drivers/net/sgiseeq.c | |||
@@ -493,11 +493,13 @@ static int sgiseeq_close(struct net_device *dev) | |||
493 | { | 493 | { |
494 | struct sgiseeq_private *sp = netdev_priv(dev); | 494 | struct sgiseeq_private *sp = netdev_priv(dev); |
495 | struct sgiseeq_regs *sregs = sp->sregs; | 495 | struct sgiseeq_regs *sregs = sp->sregs; |
496 | unsigned int irq = dev->irq; | ||
496 | 497 | ||
497 | netif_stop_queue(dev); | 498 | netif_stop_queue(dev); |
498 | 499 | ||
499 | /* Shutdown the Seeq. */ | 500 | /* Shutdown the Seeq. */ |
500 | reset_hpc3_and_seeq(sp->hregs, sregs); | 501 | reset_hpc3_and_seeq(sp->hregs, sregs); |
502 | free_irq(irq, dev); | ||
501 | 503 | ||
502 | return 0; | 504 | return 0; |
503 | } | 505 | } |
@@ -734,7 +736,7 @@ static int sgiseeq_init(struct hpc3_regs* regs, int irq) | |||
734 | return 0; | 736 | return 0; |
735 | 737 | ||
736 | err_out_free_page: | 738 | err_out_free_page: |
737 | free_page((unsigned long) sp); | 739 | free_page((unsigned long) sp->srings); |
738 | err_out_free_dev: | 740 | err_out_free_dev: |
739 | kfree(dev); | 741 | kfree(dev); |
740 | 742 | ||
@@ -754,15 +756,12 @@ static void __exit sgiseeq_exit(void) | |||
754 | { | 756 | { |
755 | struct net_device *next, *dev; | 757 | struct net_device *next, *dev; |
756 | struct sgiseeq_private *sp; | 758 | struct sgiseeq_private *sp; |
757 | int irq; | ||
758 | 759 | ||
759 | for (dev = root_sgiseeq_dev; dev; dev = next) { | 760 | for (dev = root_sgiseeq_dev; dev; dev = next) { |
760 | sp = (struct sgiseeq_private *) netdev_priv(dev); | 761 | sp = (struct sgiseeq_private *) netdev_priv(dev); |
761 | next = sp->next_module; | 762 | next = sp->next_module; |
762 | irq = dev->irq; | ||
763 | unregister_netdev(dev); | 763 | unregister_netdev(dev); |
764 | free_irq(irq, dev); | 764 | free_page((unsigned long) sp->srings); |
765 | free_page((unsigned long) sp); | ||
766 | free_netdev(dev); | 765 | free_netdev(dev); |
767 | } | 766 | } |
768 | } | 767 | } |