Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2891439e authored by Ralf Baechle's avatar Ralf Baechle Committed by Jeff Garzik
Browse files

[PATCH] sgiseeq: Fix resource handling.



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

 drivers/net/sgiseeq.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
parent bc053d45
Loading
Loading
Loading
Loading
+4 −5
Original line number Original line Diff line number Diff line
@@ -493,11 +493,13 @@ static int sgiseeq_close(struct net_device *dev)
{
{
	struct sgiseeq_private *sp = netdev_priv(dev);
	struct sgiseeq_private *sp = netdev_priv(dev);
	struct sgiseeq_regs *sregs = sp->sregs;
	struct sgiseeq_regs *sregs = sp->sregs;
	unsigned int irq = dev->irq;


	netif_stop_queue(dev);
	netif_stop_queue(dev);


	/* Shutdown the Seeq. */
	/* Shutdown the Seeq. */
	reset_hpc3_and_seeq(sp->hregs, sregs);
	reset_hpc3_and_seeq(sp->hregs, sregs);
	free_irq(irq, dev);


	return 0;
	return 0;
}
}
@@ -734,7 +736,7 @@ static int sgiseeq_init(struct hpc3_regs* regs, int irq)
	return 0;
	return 0;


err_out_free_page:
err_out_free_page:
	free_page((unsigned long) sp);
	free_page((unsigned long) sp->srings);
err_out_free_dev:
err_out_free_dev:
	kfree(dev);
	kfree(dev);


@@ -754,15 +756,12 @@ static void __exit sgiseeq_exit(void)
{
{
	struct net_device *next, *dev;
	struct net_device *next, *dev;
	struct sgiseeq_private *sp;
	struct sgiseeq_private *sp;
	int irq;


	for (dev = root_sgiseeq_dev; dev; dev = next) {
	for (dev = root_sgiseeq_dev; dev; dev = next) {
		sp = (struct sgiseeq_private *) netdev_priv(dev);
		sp = (struct sgiseeq_private *) netdev_priv(dev);
		next = sp->next_module;
		next = sp->next_module;
		irq = dev->irq;
		unregister_netdev(dev);
		unregister_netdev(dev);
		free_irq(irq, dev);
		free_page((unsigned long) sp->srings);
		free_page((unsigned long) sp);
		free_netdev(dev);
		free_netdev(dev);
	}
	}
}
}