[PATCH 4/5] x86/fixmap: add a predicate for usermode fixmaps

Jeremy Fitzhardinge
2009-10-06T00:51:31Z

Some set of fixmaps are intented to be mapped into usermode. Add an
predicate to test for those fixmaps.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
---
arch/x86/include/asm/fixmap.h | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h
index ff3cffa..0edc2bb 100644
--- a/arch/x86/include/asm/fixmap.h
+++ b/arch/x86/include/asm/fixmap.h
@@ -181,6 +181,24 @@ static inline void __set_fixmap(enum fixed_addresses idx,

extern void __this_fixmap_does_not_exist(void);

+static inline bool user_fixmap(enum fixed_addresses fixmap)
+{
+ switch (fixmap) {
+#ifdef CONFIG_X86_32
+ case FIX_HOLE ... FIX_VDSO:
+#else
+ case VSYSCALL_LAST_PAGE ... VSYSCALL_HPET:
+#ifdef CONFIG_PARAVIRT_CLOCK_VSYSCALL
+ case FIX_PVCLOCK_TIME_INFO:
+#endif
+#endif
+ return true;
+
+ default:
+ return false;
+ }
+}
+
/*
* 'index to address' translation. If anyone tries to use the idx
* directly without translation, we catch the bug with a NULL-deference
--
1.6.2.5