From: Christoph Hellwig <hch@infradead.org>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>,
Jeff Garzik <jgarzik@pobox.com>,
Linux Kernel Development <linux-kernel@vger.kernel.org>,
linux-net@vger.kernel.org
Subject: Re: [PATCH 475] HP300 LANCE
Date: Mon, 1 Nov 2004 14:22:45 +0000 [thread overview]
Message-ID: <20041101142245.GA28253@infradead.org> (raw)
In-Reply-To: <200410311003.i9VA3UMN009557@anakin.of.borg>
On Sun, Oct 31, 2004 at 11:03:30AM +0100, Geert Uytterhoeven wrote:
> HP300 LANCE updates from Kars de Jong:
> - Updated HP LANCE driver to use the new DIO semantics
> - If only HP LANCE or MVME147 LANCE is selected, enable compile-time
> choice of LANCE register access. If both are defined, go through the
> function pointer
> - Added support for CONFIG_NET_POLL_CONTROLLER
> - Fixed problem with disabling board interrupts in hplance_close() which
> caused the driver to lock up
There's tons of leaks in the hplcance probing code, and it doesn't release
he memory region on removal either.
Untested patch to fix those issues below:
--- 1.12/drivers/net/hplance.c 2004-10-06 22:44:40 +02:00
+++ edited/drivers/net/hplance.c 2004-11-01 10:20:17 +01:00
@@ -71,30 +71,42 @@
.remove = __devexit_p(hplance_remove_one),
};
+/* XXX(hch): should probably move to a better place */
+#define dio_resource_start(d) \
+ ((d)->resource.start)
+#define dio_resource_len(d) \
+ ((d)->resource.end - (d)->resource.start)
+
/* Find all the HP Lance boards and initialise them... */
static int __devinit hplance_init_one(struct dio_dev *d,
const struct dio_device_id *ent)
{
struct net_device *dev;
- int err;
+ int err = -ENOMEM;
dev = alloc_etherdev(sizeof(struct hplance_private));
if (!dev)
- return -ENOMEM;
+ goto out;
- if (!request_mem_region(d->resource.start, d->resource.end-d->resource.start, d->name))
- return -EBUSY;
+ err = -EBUSY;
+ if (!request_mem_region(dio_resource_start(d),
+ dio_resource_len(d), d->name))
+ goto out_free_netdev;
- SET_MODULE_OWNER(dev);
-
hplance_init(dev, d);
err = register_netdev(dev);
- if (err) {
- free_netdev(dev);
- return err;
- }
+ if (err)
+ goto out_free_netdev;
+
dio_set_drvdata(d, dev);
return 0;
+
+ out_release_mem_region:
+ release_mem_region(dio_resource_start(d), dio_resource_len(d));
+ out_free_netdev:
+ free_netdev(dev);
+ out:
+ return err;
}
static void __devexit hplance_remove_one(struct dio_dev *d)
@@ -102,6 +114,7 @@
struct net_device *dev = dio_get_drvdata(d);
unregister_netdev(dev);
+ release_mem_region(dio_resource_start(d), dio_resource_len(d));
free_netdev(dev);
}
next prev parent reply other threads:[~2004-11-01 14:26 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-31 10:03 [PATCH 475] HP300 LANCE Geert Uytterhoeven
2004-10-31 10:14 ` Jeff Garzik
2004-10-31 10:19 ` Andrew Morton
2004-10-31 10:41 ` Jeff Garzik
2004-10-31 10:48 ` Andrew Morton
2004-10-31 10:57 ` Jeff Garzik
2004-10-31 11:09 ` Andrew Morton
2004-10-31 11:44 ` Geert Uytterhoeven
2004-10-31 11:50 ` Herbert Xu
2004-10-31 11:58 ` Jeff Garzik
2004-11-01 14:22 ` Christoph Hellwig [this message]
2004-11-16 8:43 ` Christoph Hellwig
2004-11-17 7:12 ` Andrew Morton
2004-11-21 10:01 ` Geert Uytterhoeven
2004-11-21 11:19 ` Kars de Jong
2004-11-22 0:12 ` Andrew Morton
2004-11-22 0:25 ` Sohail Somani
2004-11-22 10:54 ` Geert Uytterhoeven
2004-11-22 8:26 ` Geert Uytterhoeven
-- strict thread matches above, loose matches on Subject: below --
2004-11-01 3:46 Chuck Ebbert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20041101142245.GA28253@infradead.org \
--to=hch@infradead.org \
--cc=akpm@osdl.org \
--cc=geert@linux-m68k.org \
--cc=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-net@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox