Remove exit call from sys_physmap_*
All callers are prepared to handle error if ERROR_PTR is returned.
The Manpage mentioning the respective return code is readapted.
Corresponding to flashrom svn r1744.
Signed-off-by: Niklas Söderlund <niso@kth.se>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
diff --git a/flashrom.8.tmpl b/flashrom.8.tmpl
index 5ede423..9f8af03 100644
--- a/flashrom.8.tmpl
+++ b/flashrom.8.tmpl
@@ -857,8 +857,7 @@
.B BUGS
for contact info.
.SH EXIT STATUS
-flashrom exits with 0 on success, 1 on most failures but with 2 if /dev/mem
-(/dev/xsvc on Solaris) can not be opened and with 3 if a call to mmap() fails.
+flashrom exits with 0 on success, 1 on most failures but with 3 if a call to mmap() fails.
.SH REQUIREMENTS
flashrom needs different access permissions for different programmers.
.sp
diff --git a/physmap.c b/physmap.c
index 9cac868..caad1ca 100644
--- a/physmap.c
+++ b/physmap.c
@@ -165,12 +165,11 @@
/* Open the memory device UNCACHED. Important for MMIO. */
if (-1 == (fd_mem = open(MEM_DEV, O_RDWR | O_SYNC))) {
msg_perr("Critical error: open(" MEM_DEV "): %s\n", strerror(errno));
- exit(2);
+ return ERROR_PTR;
}
}
- virt_addr = mmap(NULL, len, PROT_WRITE | PROT_READ, MAP_SHARED,
- fd_mem, (off_t)phys_addr);
+ virt_addr = mmap(NULL, len, PROT_WRITE | PROT_READ, MAP_SHARED, fd_mem, (off_t)phys_addr);
return MAP_FAILED == virt_addr ? ERROR_PTR : virt_addr;
}
@@ -185,12 +184,11 @@
/* Open the memory device CACHED. */
if (-1 == (fd_mem_cached = open(MEM_DEV, O_RDWR))) {
msg_perr("Critical error: open(" MEM_DEV "): %s\n", strerror(errno));
- exit(2);
+ return ERROR_PTR;
}
}
- virt_addr = mmap(NULL, len, PROT_READ, MAP_SHARED,
- fd_mem_cached, (off_t)phys_addr);
+ virt_addr = mmap(NULL, len, PROT_READ, MAP_SHARED, fd_mem_cached, (off_t)phys_addr);
return MAP_FAILED == virt_addr ? ERROR_PTR : virt_addr;
}
@@ -200,7 +198,7 @@
msg_pspew("Not unmapping zero size at %p\n", virt_addr);
return;
}
-
+
munmap(virt_addr, len);
}
#endif