mirror of
https://github.com/torvalds/linux
synced 2024-09-21 11:38:48 +00:00
selftests/timens: Fix gettime_perf to work on powerpc
On powerpc: - VDSO library is named linux-vdso32.so.1 or linux-vdso64.so.1 - clock_gettime is named __kernel_clock_gettime() Ensure gettime_perf tries these names before giving up. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/469f37ab91984309eb68c0fb47e8438cdf5b6463.1617198956.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
92d9d61be5
commit
f56607e85e
|
@ -25,12 +25,20 @@ static void fill_function_pointers(void)
|
||||||
if (!vdso)
|
if (!vdso)
|
||||||
vdso = dlopen("linux-gate.so.1",
|
vdso = dlopen("linux-gate.so.1",
|
||||||
RTLD_LAZY | RTLD_LOCAL | RTLD_NOLOAD);
|
RTLD_LAZY | RTLD_LOCAL | RTLD_NOLOAD);
|
||||||
|
if (!vdso)
|
||||||
|
vdso = dlopen("linux-vdso32.so.1",
|
||||||
|
RTLD_LAZY | RTLD_LOCAL | RTLD_NOLOAD);
|
||||||
|
if (!vdso)
|
||||||
|
vdso = dlopen("linux-vdso64.so.1",
|
||||||
|
RTLD_LAZY | RTLD_LOCAL | RTLD_NOLOAD);
|
||||||
if (!vdso) {
|
if (!vdso) {
|
||||||
pr_err("[WARN]\tfailed to find vDSO\n");
|
pr_err("[WARN]\tfailed to find vDSO\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
vdso_clock_gettime = (vgettime_t)dlsym(vdso, "__vdso_clock_gettime");
|
vdso_clock_gettime = (vgettime_t)dlsym(vdso, "__vdso_clock_gettime");
|
||||||
|
if (!vdso_clock_gettime)
|
||||||
|
vdso_clock_gettime = (vgettime_t)dlsym(vdso, "__kernel_clock_gettime");
|
||||||
if (!vdso_clock_gettime)
|
if (!vdso_clock_gettime)
|
||||||
pr_err("Warning: failed to find clock_gettime in vDSO\n");
|
pr_err("Warning: failed to find clock_gettime in vDSO\n");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue