util/cacheinfo: fix crash when compiling with uClibc
uClibc defines _SC_LEVEL1_ICACHE_LINESIZE and _SC_LEVEL1_DCACHE_LINESIZE but the corresponding sysconf calls returns -1, which is a valid result, meaning that the limit is indeterminate. Handle this situation using the fallback values instead of crashing due to an assertion failure. Signed-off-by: Carlos Santos <casantos@redhat.com> Message-Id: <20191017123713.30192-1-casantos@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
7b7d00e0a7
commit
00b5032ead
@ -93,10 +93,16 @@ static void sys_cache_info(int *isize, int *dsize)
|
||||
static void sys_cache_info(int *isize, int *dsize)
|
||||
{
|
||||
# ifdef _SC_LEVEL1_ICACHE_LINESIZE
|
||||
*isize = sysconf(_SC_LEVEL1_ICACHE_LINESIZE);
|
||||
int tmp_isize = (int) sysconf(_SC_LEVEL1_ICACHE_LINESIZE);
|
||||
if (tmp_isize > 0) {
|
||||
*isize = tmp_isize;
|
||||
}
|
||||
# endif
|
||||
# ifdef _SC_LEVEL1_DCACHE_LINESIZE
|
||||
*dsize = sysconf(_SC_LEVEL1_DCACHE_LINESIZE);
|
||||
int tmp_dsize = (int) sysconf(_SC_LEVEL1_DCACHE_LINESIZE);
|
||||
if (tmp_dsize > 0) {
|
||||
*dsize = tmp_dsize;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
#endif /* sys_cache_info */
|
||||
|
Loading…
Reference in New Issue
Block a user