Patchwork [3.8.y.z,extended,stable] Patch "3c59x: fix freeing nonexistent resource on driver unload" has been added to staging queue

mail settings
Submitter Kamal Mostafa
Date May 24, 2013, 5:38 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/246258/
State New
Headers show


Kamal Mostafa - May 24, 2013, 5:38 p.m.
This is a note to let you know that I have just added a patch titled

    3c59x: fix freeing nonexistent resource on driver unload

to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.8.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.8.y.z tree, see



From 0b38cddcef89f19bff6f10f06d7492f34cfa925d Mon Sep 17 00:00:00 2001
From: Sergei Shtylyov <>
Date: Thu, 2 May 2013 11:10:22 +0000
Subject: 3c59x: fix freeing nonexistent resource on driver unload

[ Upstream commit c81400be716aa4c76f6ebf339ba94358dbbf6da6 ]

When unloading the driver that drives an EISA board, a message similar to the
following one is displayed:

Trying to free nonexistent resource <0000000000013000-000000000001301f>

Then an user is unable to reload the driver because the resource it requested in
the previous load hasn't been freed. This happens most probably due to a typo in
vortex_eisa_remove() which calls release_region() with 'dev->base_addr'  instead
of 'edev->base_addr'...

Reported-by: Matthew Whitehead <>
Tested-by: Matthew Whitehead <>
Signed-off-by: Sergei Shtylyov <>
Signed-off-by: David S. Miller <>
Signed-off-by: Kamal Mostafa <>
 drivers/net/ethernet/3com/3c59x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



diff --git a/drivers/net/ethernet/3com/3c59x.c b/drivers/net/ethernet/3com/3c59x.c
index ed0feb3..44de6ce 100644
--- a/drivers/net/ethernet/3com/3c59x.c
+++ b/drivers/net/ethernet/3com/3c59x.c
@@ -951,7 +951,7 @@  static int vortex_eisa_remove(struct device *device)

 	iowrite16(TotalReset|0x14, ioaddr + EL3_CMD);
-	release_region(dev->base_addr, VORTEX_TOTAL_SIZE);
+	release_region(edev->base_addr, VORTEX_TOTAL_SIZE);

 	return 0;