diff options
author | Stuart Bennett <sb476@cam.ac.uk> | 2008-01-23 20:00:37 +0000 |
---|---|---|
committer | Stuart Bennett <sb476@cam.ac.uk> | 2008-01-23 20:00:37 +0000 |
commit | 1c32b81ad6cdd16422bc79b735a731e9416676b0 (patch) | |
tree | f208e5b9e65ec99642ab15d49d29c5770f82a360 | |
parent | 81df93cab0843ec2653b13e5bf5f777a90c272c2 (diff) |
Don't leak mmaps
-rw-r--r-- | nvbiosemu.c | 7 |
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; } |