Lines Matching +full:data +full:- +full:mapping

1 // SPDX-License-Identifier: GPL-2.0-or-later
20 #include <asm/mips-cps.h>
26 /* Kernel-provided data used by the VDSO. */
28 struct vdso_data *vdso_data = mips_vdso_data.data;
31 * Mapping for the VDSO data/GIC pages. The real pages are mapped manually, as
46 BUG_ON(!PAGE_ALIGNED(image->data)); in init_vdso_image()
47 BUG_ON(!PAGE_ALIGNED(image->size)); in init_vdso_image()
49 num_pages = image->size / PAGE_SIZE; in init_vdso_image()
51 data_pfn = __phys_to_pfn(__pa_symbol(image->data)); in init_vdso_image()
53 image->mapping.pages[i] = pfn_to_page(data_pfn + i); in init_vdso_image()
81 if (current->flags & PF_RANDOMIZE) { in vdso_base()
91 struct mips_vdso_image *image = current->thread.abi->vdso; in arch_setup_additional_pages()
92 struct mm_struct *mm = current->mm; in arch_setup_additional_pages()
98 return -EINTR; in arch_setup_additional_pages()
113 * Determine total area size. This includes the VDSO data itself, the in arch_setup_additional_pages()
114 * data page, and the GIC user page if present. Always create a mapping in arch_setup_additional_pages()
122 size = vvar_size + image->size; in arch_setup_additional_pages()
126 * colour-matching alignment below. in arch_setup_additional_pages()
138 * If we suffer from dcache aliasing, ensure that the VDSO data page in arch_setup_additional_pages()
139 * mapping is coloured the same as the kernel's mapping of that memory. in arch_setup_additional_pages()
140 * This ensures that when the kernel updates the VDSO data userland in arch_setup_additional_pages()
145 base += ((unsigned long)vdso_data - gic_size) & shm_align_mask; in arch_setup_additional_pages()
165 pgprot_noncached(vma->vm_page_prot)); in arch_setup_additional_pages()
170 /* Map data page. */ in arch_setup_additional_pages()
173 PAGE_SIZE, vma->vm_page_prot); in arch_setup_additional_pages()
178 vma = _install_special_mapping(mm, vdso_addr, image->size, in arch_setup_additional_pages()
181 &image->mapping); in arch_setup_additional_pages()
187 mm->context.vdso = (void *)vdso_addr; in arch_setup_additional_pages()