summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Bennett <sb476@cam.ac.uk>2008-01-23 20:00:37 +0000
committerStuart Bennett <sb476@cam.ac.uk>2008-01-23 20:00:37 +0000
commit1c32b81ad6cdd16422bc79b735a731e9416676b0 (patch)
treef208e5b9e65ec99642ab15d49d29c5770f82a360
parent81df93cab0843ec2653b13e5bf5f777a90c272c2 (diff)
Don't leak mmaps
-rw-r--r--nvbiosemu.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/nvbiosemu.c b/nvbiosemu.c
index 96c89ce..79c92f0 100644
--- a/nvbiosemu.c
+++ b/nvbiosemu.c
@@ -166,6 +166,7 @@ int reload_nv_bios(uintptr_t pcimemaddr)
{
int fd;
uint8_t bios[NV_PROM_SIZE];
+ int ret = 0;
if ((fd = open("/dev/mem", O_RDWR)) == -1) {
printf("Can't open /dev/mem\n");
@@ -183,14 +184,14 @@ int reload_nv_bios(uintptr_t pcimemaddr)
if (NVShadowVBIOS(NULL, (uint32_t *)bios)) {
if (mmap_in_bios(bios))
- return 1;
+ ret = 1;
} else
- return 1;
+ ret = 1;
unmap_dev_mem((unsigned long)PMC, 0x2000);
unmap_dev_mem((unsigned long)PRAMIN, NV_PROM_SIZE);
unmap_dev_mem((unsigned long)PROM, NV_PROM_SIZE);
unmap_dev_mem((unsigned long)PNV50, 0xffff);
- return 0;
+ return ret;
}