aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2016-06-14 00:55:43 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2016-06-14 10:54:05 -0400
commitde3fa841e429de7e288facf9b642948677fac581 (patch)
tree0cec833106a6617118ba1ee6a2bd55f0a329122a
parent86d18a55dd66aea8bb8fffb0334557eb4973ea52 (diff)
s390/mm: fix compile for PAGE_DEFAULT_KEY != 0
The usual problem for code that is ifdef'ed out is that it doesn't compile after a while. That's also the case for the storage key initialisation code, if it would be used (set PAGE_DEFAULT_KEY to something not zero): ./arch/s390/include/asm/page.h: In function 'storage_key_init_range': ./arch/s390/include/asm/page.h:36:2: error: implicit declaration of function '__storage_key_init_range' Since the code itself has been useful for debugging purposes several times, remove the ifdefs and make sure the code gets compiler coverage. The cost for this is eight bytes. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/include/asm/page.h7
-rw-r--r--arch/s390/mm/pageattr.c4
2 files changed, 6 insertions, 5 deletions
diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h
index 53eacbd4f09b..42fd5fea42ee 100644
--- a/arch/s390/include/asm/page.h
+++ b/arch/s390/include/asm/page.h
@@ -30,11 +30,12 @@
30#include <asm/setup.h> 30#include <asm/setup.h>
31#ifndef __ASSEMBLY__ 31#ifndef __ASSEMBLY__
32 32
33void __storage_key_init_range(unsigned long start, unsigned long end);
34
33static inline void storage_key_init_range(unsigned long start, unsigned long end) 35static inline void storage_key_init_range(unsigned long start, unsigned long end)
34{ 36{
35#if PAGE_DEFAULT_KEY 37 if (PAGE_DEFAULT_KEY)
36 __storage_key_init_range(start, end); 38 __storage_key_init_range(start, end);
37#endif
38} 39}
39 40
40#define clear_page(page) memset((page), 0, PAGE_SIZE) 41#define clear_page(page) memset((page), 0, PAGE_SIZE)
diff --git a/arch/s390/mm/pageattr.c b/arch/s390/mm/pageattr.c
index ba124d9c96ba..7104ffb5a67f 100644
--- a/arch/s390/mm/pageattr.c
+++ b/arch/s390/mm/pageattr.c
@@ -10,7 +10,6 @@
10#include <asm/pgtable.h> 10#include <asm/pgtable.h>
11#include <asm/page.h> 11#include <asm/page.h>
12 12
13#if PAGE_DEFAULT_KEY
14static inline unsigned long sske_frame(unsigned long addr, unsigned char skey) 13static inline unsigned long sske_frame(unsigned long addr, unsigned char skey)
15{ 14{
16 asm volatile(".insn rrf,0xb22b0000,%[skey],%[addr],9,0" 15 asm volatile(".insn rrf,0xb22b0000,%[skey],%[addr],9,0"
@@ -22,6 +21,8 @@ void __storage_key_init_range(unsigned long start, unsigned long end)
22{ 21{
23 unsigned long boundary, size; 22 unsigned long boundary, size;
24 23
24 if (!PAGE_DEFAULT_KEY)
25 return;
25 while (start < end) { 26 while (start < end) {
26 if (MACHINE_HAS_EDAT1) { 27 if (MACHINE_HAS_EDAT1) {
27 /* set storage keys for a 1MB frame */ 28 /* set storage keys for a 1MB frame */
@@ -38,7 +39,6 @@ void __storage_key_init_range(unsigned long start, unsigned long end)
38 start += PAGE_SIZE; 39 start += PAGE_SIZE;
39 } 40 }
40} 41}
41#endif
42 42
43#ifdef CONFIG_PROC_FS 43#ifdef CONFIG_PROC_FS
44atomic_long_t direct_pages_count[PG_DIRECT_MAP_MAX]; 44atomic_long_t direct_pages_count[PG_DIRECT_MAP_MAX];