Commit 33765435 authored by Dmitry Safonov's avatar Dmitry Safonov Committed by Andrei Vagin

vdso: Use vaddr_to_pfn() to get vdso's pfn

Generalize addr-to-pfn conversion in one function.
Signed-off-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent 55ffa830
...@@ -82,11 +82,10 @@ int parasite_fixup_vdso(struct parasite_ctl *ctl, pid_t pid, ...@@ -82,11 +82,10 @@ int parasite_fixup_vdso(struct parasite_ctl *ctl, pid_t pid,
struct vma_area *proxy_vdso_marked = NULL; struct vma_area *proxy_vdso_marked = NULL;
struct vma_area *proxy_vvar_marked = NULL; struct vma_area *proxy_vvar_marked = NULL;
struct parasite_vdso_vma_entry *args; struct parasite_vdso_vma_entry *args;
int fd = -1, ret, exit_code = -1; int fd = -1, exit_code = -1;
enum vdso_check_t vcheck; enum vdso_check_t vcheck;
u64 pfn = VDSO_BAD_PFN; u64 pfn = VDSO_BAD_PFN;
struct vma_area *vma; struct vma_area *vma;
off_t off;
vcheck = get_vdso_check_type(ctl); vcheck = get_vdso_check_type(ctl);
args = compel_parasite_args(ctl, struct parasite_vdso_vma_entry); args = compel_parasite_args(ctl, struct parasite_vdso_vma_entry);
...@@ -178,14 +177,9 @@ int parasite_fixup_vdso(struct parasite_ctl *ctl, pid_t pid, ...@@ -178,14 +177,9 @@ int parasite_fixup_vdso(struct parasite_ctl *ctl, pid_t pid,
* symbols in parasite code. * symbols in parasite code.
*/ */
if (vcheck == VDSO_CHECK_PFN) { if (vcheck == VDSO_CHECK_PFN) {
off = (vma->e->start / PAGE_SIZE) * sizeof(u64); if (vaddr_to_pfn(fd, vma->e->start, &pfn))
ret = pread(fd, &pfn, sizeof(pfn), off);
if (ret < 0 || ret != sizeof(pfn)) {
pr_perror("Can't read pme for pid %d", pid);
goto err; goto err;
}
pfn = PME_PFRAME(pfn);
if (!pfn) { if (!pfn) {
pr_err("Unexpected page fram number 0 for pid %d\n", pid); pr_err("Unexpected page fram number 0 for pid %d\n", pid);
goto err; goto err;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment