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
