vdso/datastore: Mark vdso_k_*_data pointers as __ro_after_init
These pointers are only modified once in vdso_setup_data_pages(),
during the init phase. Make them read-only after that.
Drop __refdata as that would conflict with __ro_after_init.
Modpost does accept the reference from a __ro_after_init symbol to
an __init one.
Fixes: 05988dba11 ("vdso/datastore: Allocate data pages dynamically")
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260513-vdso-ro-after-init-v1-1-4b51f74015a4@linutronix.de
This commit is contained in:
parent
ce4abda5e1
commit
3f7fbde4cd
1 changed files with 3 additions and 3 deletions
|
|
@ -11,21 +11,21 @@
|
|||
static u8 vdso_initdata[VDSO_NR_PAGES * PAGE_SIZE] __aligned(PAGE_SIZE) __initdata = {};
|
||||
|
||||
#ifdef CONFIG_GENERIC_GETTIMEOFDAY
|
||||
struct vdso_time_data *vdso_k_time_data __refdata =
|
||||
struct vdso_time_data *vdso_k_time_data __ro_after_init =
|
||||
(void *)&vdso_initdata[VDSO_TIME_PAGE_OFFSET * PAGE_SIZE];
|
||||
|
||||
static_assert(sizeof(struct vdso_time_data) <= PAGE_SIZE);
|
||||
#endif /* CONFIG_GENERIC_GETTIMEOFDAY */
|
||||
|
||||
#ifdef CONFIG_VDSO_GETRANDOM
|
||||
struct vdso_rng_data *vdso_k_rng_data __refdata =
|
||||
struct vdso_rng_data *vdso_k_rng_data __ro_after_init =
|
||||
(void *)&vdso_initdata[VDSO_RNG_PAGE_OFFSET * PAGE_SIZE];
|
||||
|
||||
static_assert(sizeof(struct vdso_rng_data) <= PAGE_SIZE);
|
||||
#endif /* CONFIG_VDSO_GETRANDOM */
|
||||
|
||||
#ifdef CONFIG_ARCH_HAS_VDSO_ARCH_DATA
|
||||
struct vdso_arch_data *vdso_k_arch_data __refdata =
|
||||
struct vdso_arch_data *vdso_k_arch_data __ro_after_init =
|
||||
(void *)&vdso_initdata[VDSO_ARCH_PAGES_START * PAGE_SIZE];
|
||||
#endif /* CONFIG_ARCH_HAS_VDSO_ARCH_DATA */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue