diff options
| author | Hendrik Brueckner <brueckner@linux.vnet.ibm.com> | 2010-11-10 04:05:55 -0500 |
|---|---|---|
| committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2010-11-10 04:05:54 -0500 |
| commit | ec6743bb06510c7b629603ce35713d6ae9273579 (patch) | |
| tree | 6faddd2ca7b991987bafc2a7d4241ad6d141b765 | |
| parent | ca768b663131ca644689fcadc9ca092dcc96a758 (diff) | |
[S390] mm: add devmem_is_allowed() for STRICT_DEVMEM checking
Provide the devmem_is_allowed() routine to restrict access to
kernel memory from userspace.
Set the CONFIG_STRICT_DEVMEM config option to switch on checking.
Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| -rw-r--r-- | arch/s390/Kconfig.debug | 12 | ||||
| -rw-r--r-- | arch/s390/include/asm/page.h | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/arch/s390/Kconfig.debug b/arch/s390/Kconfig.debug index 45e0c6199f36..05221b13ffb1 100644 --- a/arch/s390/Kconfig.debug +++ b/arch/s390/Kconfig.debug | |||
| @@ -6,6 +6,18 @@ config TRACE_IRQFLAGS_SUPPORT | |||
| 6 | 6 | ||
| 7 | source "lib/Kconfig.debug" | 7 | source "lib/Kconfig.debug" |
| 8 | 8 | ||
| 9 | config STRICT_DEVMEM | ||
| 10 | def_bool y | ||
| 11 | prompt "Filter access to /dev/mem" | ||
| 12 | ---help--- | ||
| 13 | This option restricts access to /dev/mem. If this option is | ||
| 14 | disabled, you allow userspace access to all memory, including | ||
| 15 | kernel and userspace memory. Accidental memory access is likely | ||
| 16 | to be disastrous. | ||
| 17 | Memory access is required for experts who want to debug the kernel. | ||
| 18 | |||
| 19 | If you are unsure, say Y. | ||
| 20 | |||
| 9 | config DEBUG_STRICT_USER_COPY_CHECKS | 21 | config DEBUG_STRICT_USER_COPY_CHECKS |
| 10 | bool "Strict user copy size checks" | 22 | bool "Strict user copy size checks" |
| 11 | ---help--- | 23 | ---help--- |
diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h index a8729ea7e9ac..3c987e9ec8d6 100644 --- a/arch/s390/include/asm/page.h +++ b/arch/s390/include/asm/page.h | |||
| @@ -130,6 +130,11 @@ struct page; | |||
| 130 | void arch_free_page(struct page *page, int order); | 130 | void arch_free_page(struct page *page, int order); |
| 131 | void arch_alloc_page(struct page *page, int order); | 131 | void arch_alloc_page(struct page *page, int order); |
| 132 | 132 | ||
| 133 | static inline int devmem_is_allowed(unsigned long pfn) | ||
| 134 | { | ||
| 135 | return 0; | ||
| 136 | } | ||
| 137 | |||
| 133 | #define HAVE_ARCH_FREE_PAGE | 138 | #define HAVE_ARCH_FREE_PAGE |
| 134 | #define HAVE_ARCH_ALLOC_PAGE | 139 | #define HAVE_ARCH_ALLOC_PAGE |
| 135 | 140 | ||
