linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andy Lutomirski <luto@kernel.org>
To: x86@kernel.org, Borislav Petkov <bp@alien8.de>,
	Kees Cook <keescook@chromium.org>
Cc: linux-kernel@vger.kernel.org, Oleg Nesterov <oleg@redhat.com>,
	Andy Lutomirski <luto@kernel.org>
Subject: [PATCH v3 4/7] x86/vdso: Track each mm's loaded vdso image as well as its base
Date: Tue, 29 Dec 2015 20:12:21 -0800	[thread overview]
Message-ID: <c99ac48681bad709ca7ad5ee899d9042a3af6b00.1451446564.git.luto@kernel.org> (raw)
In-Reply-To: <cover.1451446564.git.luto@kernel.org>
In-Reply-To: <cover.1451446564.git.luto@kernel.org>

As we start to do more intelligent things with the vdso at runtime
(as opposed to just at mm initialization time), we'll need to know
which vdso is in use.

In principle, we could guess based on the mm type, but that's
over-complicated and error-prone.  Instead, just track it in the mmu
context.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
---
 arch/x86/entry/vdso/vma.c  | 1 +
 arch/x86/include/asm/mmu.h | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c
index b8f69e264ac4..80b021067bd6 100644
--- a/arch/x86/entry/vdso/vma.c
+++ b/arch/x86/entry/vdso/vma.c
@@ -121,6 +121,7 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
 
 	text_start = addr - image->sym_vvar_start;
 	current->mm->context.vdso = (void __user *)text_start;
+	current->mm->context.vdso_image = image;
 
 	/*
 	 * MAYWRITE to allow gdb to COW and set breakpoints
diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h
index 55234d5e7160..1ea0baef1175 100644
--- a/arch/x86/include/asm/mmu.h
+++ b/arch/x86/include/asm/mmu.h
@@ -19,7 +19,8 @@ typedef struct {
 #endif
 
 	struct mutex lock;
-	void __user *vdso;
+	void __user *vdso;			/* vdso base address */
+	const struct vdso_image *vdso_image;	/* vdso image in use */
 
 	atomic_t perf_rdpmc_allowed;	/* nonzero if rdpmc is allowed */
 } mm_context_t;
-- 
2.5.0


  parent reply	other threads:[~2015-12-30  4:13 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-30  4:12 [PATCH v3 0/7] mm, x86/vdso: Special IO mapping improvements Andy Lutomirski
2015-12-30  4:12 ` [PATCH v3 1/7] x86/vsdo: Fix build on PARAVIRT_CLOCK=y, KVM_GUEST=n Andy Lutomirski
2016-01-05 19:21   ` Borislav Petkov
2016-01-06  9:54   ` [tip:x86/asm] x86/vsdo: Fix build on PARAVIRT_CLOCK=y, KVM_GUEST= n tip-bot for Andy Lutomirski
2015-12-30  4:12 ` [PATCH v3 2/7] mm: Add a vm_special_mapping .fault method Andy Lutomirski
2016-01-12 12:02   ` [tip:x86/asm] mm: Add a vm_special_mapping.fault() method tip-bot for Andy Lutomirski
2015-12-30  4:12 ` [PATCH v3 3/7] mm: Add vm_insert_pfn_prot Andy Lutomirski
2016-01-12 12:02   ` [tip:x86/asm] mm: Add vm_insert_pfn_prot() tip-bot for Andy Lutomirski
2015-12-30  4:12 ` Andy Lutomirski [this message]
2016-01-12 12:03   ` [tip:x86/asm] x86/vdso: Track each mm' s loaded vDSO image as well as its base tip-bot for Andy Lutomirski
2015-12-30  4:12 ` [PATCH v3 5/7] x86,vdso: Use .fault for the vdso text mapping Andy Lutomirski
2016-01-12 12:03   ` [tip:x86/asm] x86/vdso: Use .fault for the vDSO " tip-bot for Andy Lutomirski
2015-12-30  4:12 ` [PATCH v3 6/7] x86,vdso: Use .fault instead of remap_pfn_range for the vvar mapping Andy Lutomirski
2016-01-12 12:04   ` [tip:x86/asm] x86/vdso: Use ->fault() instead of remap_pfn_range( ) " tip-bot for Andy Lutomirski
2015-12-30  4:12 ` [PATCH v3 7/7] x86/vdso: Disallow vvar access to vclock IO for never-used vclocks Andy Lutomirski
2016-01-12 12:04   ` [tip:x86/asm] " tip-bot for Andy Lutomirski
2016-01-05  0:02 ` [PATCH v3 0/7] mm, x86/vdso: Special IO mapping improvements Kees Cook

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c99ac48681bad709ca7ad5ee899d9042a3af6b00.1451446564.git.luto@kernel.org \
    --to=luto@kernel.org \
    --cc=bp@alien8.de \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).