diff options
| author | Thomas Weißschuh <thomas.weissschuh@linutronix.de> | 2026-06-30 09:32:00 +0200 |
|---|---|---|
| committer | Thomas Gleixner <tglx@kernel.org> | 2026-07-07 23:52:53 +0200 |
| commit | 0b50763e8439b171d8fe2c6df0d27705fa89f21a (patch) | |
| tree | a894e3cc721104dc279e0e6e0af170f8abf26e6c /lib | |
| parent | c27e727c9a60e6303088a956eea45b6b5c02cef3 (diff) | |
vdso/datastore: Simplify the mapping logic for VDSO_TIME_PAGE_OFFSET
The logic for CONFIG_GENERIC_GETTIMEOFDAY=n and !timens_page is
identical now.
Use this to simplify the logic a bit.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260630-vdso-mlockall-v4-6-6c93708ce723@linutronix.de
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/vdso/datastore.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/lib/vdso/datastore.c b/lib/vdso/datastore.c index d7ab077cd604..1426bf4e0c12 100644 --- a/lib/vdso/datastore.c +++ b/lib/vdso/datastore.c @@ -76,22 +76,20 @@ static vm_fault_t vvar_fault(const struct vm_special_mapping *sm, switch (vmf->pgoff) { case VDSO_TIME_PAGE_OFFSET: - if (!IS_ENABLED(CONFIG_GENERIC_GETTIMEOFDAY)) + if (!IS_ENABLED(CONFIG_GENERIC_GETTIMEOFDAY) || !timens_page) break; - if (timens_page) { - /* - * Fault in VVAR page too, since it will be accessed - * to get clock data anyway. - */ - unsigned long addr; - vm_fault_t err; - - addr = vmf->address + VDSO_TIMENS_PAGE_OFFSET * PAGE_SIZE; - err = vmf_insert_page(vma, addr, page); - if (unlikely(err & VM_FAULT_ERROR)) - return err; - page = timens_page; - } + /* + * Fault in VVAR page too, since it will be accessed + * to get clock data anyway. + */ + unsigned long addr; + vm_fault_t err; + + addr = vmf->address + VDSO_TIMENS_PAGE_OFFSET * PAGE_SIZE; + err = vmf_insert_page(vma, addr, page); + if (unlikely(err & VM_FAULT_ERROR)) + return err; + page = timens_page; break; case VDSO_TIMENS_PAGE_OFFSET: /* |
