mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
vdso/gettimeofday: Validate system call existence for time() and gettimeofday()
Not all architectures have the system calls for time() and gettimeofday(). When the system call is missing, the vDSO function should also not be present. Validate that. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Link: https://patch.msgid.link/20260702-vdso-compat_32bit_time-v3-2-db9f36d8d432@linutronix.de
This commit is contained in:
parent
dce21fb3d5
commit
f8b9467725
|
|
@ -12,6 +12,8 @@
|
|||
#include <vdso/time32.h>
|
||||
#include <vdso/time64.h>
|
||||
|
||||
#include <uapi/linux/unistd.h>
|
||||
|
||||
/*
|
||||
* The generic vDSO implementation requires that gettimeofday.h
|
||||
* provides:
|
||||
|
|
@ -348,6 +350,10 @@ __cvdso_gettimeofday_data(const struct vdso_time_data *vd,
|
|||
{
|
||||
const struct vdso_clock *vc = vd->clock_data;
|
||||
|
||||
#ifndef __NR_gettimeofday
|
||||
BUILD_BUG();
|
||||
#endif
|
||||
|
||||
if (likely(tv != NULL)) {
|
||||
struct __kernel_timespec ts;
|
||||
|
||||
|
|
@ -382,6 +388,10 @@ __cvdso_time_data(const struct vdso_time_data *vd, __kernel_old_time_t *time)
|
|||
const struct vdso_clock *vc = vd->clock_data;
|
||||
__kernel_old_time_t t;
|
||||
|
||||
#ifndef __NR_time
|
||||
BUILD_BUG();
|
||||
#endif
|
||||
|
||||
if (vdso_is_timens_clock(vc)) {
|
||||
vd = vdso_timens_data(vd);
|
||||
vc = vd->clock_data;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user