[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-netdev
Subject:    [PATCH] i82596/CONFIG_APRICOT release_region() fix
From:       Magnus Damm <magnus () valinux ! co ! jp>
Date:       2005-11-30 7:23:45
Message-ID: 20051130072604.7030.49055.sendpatchset () cherry ! local
[Download RAW message or body]

Fix release_region() in i82596 driver using CONFIG_APRICOT.

linux-2.6.15-rc3 configured with CONFIG_APRICOT=y calls release_region()
incorrectly if no hardware is found:

Trying to free nonexistent resource <00000000-00000010>

This patch sets up dev->base_addr before the label "out1" might be used.

Signed-off-by: Magnus Damm <magnus@valinux.co.jp>
---

 82596.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

--- linux-2.6.15-rc3/drivers/net/82596.c	2005-11-30 16:10:34.000000000 +0900
+++ linux-2.6.15-rc3-i82596_apricot_release_region/drivers/net/82596.c	2005-11-30 \
16:11:13.000000000 +0900 @@ -1203,6 +1203,9 @@
 			checksum += eth_addr[i];
 		}
 
+		dev->base_addr = ioaddr;
+		dev->irq = 10;
+
 		/* checksum is a multiple of 0x100, got this wrong first time
 		   some machines have 0x100, some 0x200. The DOS driver doesn't
 		   even bother with the checksum.
@@ -1215,8 +1218,6 @@
 			goto out1;
 		}
 
-		dev->base_addr = ioaddr;
-		dev->irq = 10;
 	}
 #endif
 	dev->mem_start = (int)__get_free_pages(GFP_ATOMIC, 0);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic