mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +02:00
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>
This commit is contained in:
parent
26e7a154a8
commit
2d8b7ef4a8
@ -857,8 +857,7 @@ backuplog.txt, writelog.txt and restorelog.txt. See section
|
|||||||
.B BUGS
|
.B BUGS
|
||||||
for contact info.
|
for contact info.
|
||||||
.SH EXIT STATUS
|
.SH EXIT STATUS
|
||||||
flashrom exits with 0 on success, 1 on most failures but with 2 if /dev/mem
|
flashrom exits with 0 on success, 1 on most failures but with 3 if a call to mmap() fails.
|
||||||
(/dev/xsvc on Solaris) can not be opened and with 3 if a call to mmap() fails.
|
|
||||||
.SH REQUIREMENTS
|
.SH REQUIREMENTS
|
||||||
flashrom needs different access permissions for different programmers.
|
flashrom needs different access permissions for different programmers.
|
||||||
.sp
|
.sp
|
||||||
|
12
physmap.c
12
physmap.c
@ -165,12 +165,11 @@ static void *sys_physmap_rw_uncached(uintptr_t phys_addr, size_t len)
|
|||||||
/* Open the memory device UNCACHED. Important for MMIO. */
|
/* Open the memory device UNCACHED. Important for MMIO. */
|
||||||
if (-1 == (fd_mem = open(MEM_DEV, O_RDWR | O_SYNC))) {
|
if (-1 == (fd_mem = open(MEM_DEV, O_RDWR | O_SYNC))) {
|
||||||
msg_perr("Critical error: open(" MEM_DEV "): %s\n", strerror(errno));
|
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,
|
virt_addr = mmap(NULL, len, PROT_WRITE | PROT_READ, MAP_SHARED, fd_mem, (off_t)phys_addr);
|
||||||
fd_mem, (off_t)phys_addr);
|
|
||||||
return MAP_FAILED == virt_addr ? ERROR_PTR : virt_addr;
|
return MAP_FAILED == virt_addr ? ERROR_PTR : virt_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,12 +184,11 @@ static void *sys_physmap_ro_cached(uintptr_t phys_addr, size_t len)
|
|||||||
/* Open the memory device CACHED. */
|
/* Open the memory device CACHED. */
|
||||||
if (-1 == (fd_mem_cached = open(MEM_DEV, O_RDWR))) {
|
if (-1 == (fd_mem_cached = open(MEM_DEV, O_RDWR))) {
|
||||||
msg_perr("Critical error: open(" MEM_DEV "): %s\n", strerror(errno));
|
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,
|
virt_addr = mmap(NULL, len, PROT_READ, MAP_SHARED, fd_mem_cached, (off_t)phys_addr);
|
||||||
fd_mem_cached, (off_t)phys_addr);
|
|
||||||
return MAP_FAILED == virt_addr ? ERROR_PTR : virt_addr;
|
return MAP_FAILED == virt_addr ? ERROR_PTR : virt_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,7 +198,7 @@ void physunmap(void *virt_addr, size_t len)
|
|||||||
msg_pspew("Not unmapping zero size at %p\n", virt_addr);
|
msg_pspew("Not unmapping zero size at %p\n", virt_addr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
munmap(virt_addr, len);
|
munmap(virt_addr, len);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user