diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2010-02-26 16:37:44 -0500 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2010-02-26 16:37:31 -0500 |
commit | 52499f40267e1178b3b2c887aee85c0c9fd01ec0 (patch) | |
tree | 0ed02d8d9c01434b12865b63d918725ca0738089 /arch/s390 | |
parent | cbb870c8221147ae337612e04b2bb0211f31a74b (diff) |
[S390] bug: use relative pointers in bug table entries
Reduces the size of the bug table entries by 50% on 64bit kernels.
Saves around 30kb on a defconfig kernel.
s390 version of b93a531e "allow bug table entries to use relative
pointers (and use it on x86-64)".
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/Kconfig | 3 | ||||
-rw-r--r-- | arch/s390/include/asm/bug.h | 10 |
2 files changed, 5 insertions, 8 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index c80235206c01..40334872f5ea 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -54,6 +54,9 @@ config GENERIC_BUG | |||
54 | depends on BUG | 54 | depends on BUG |
55 | default y | 55 | default y |
56 | 56 | ||
57 | config GENERIC_BUG_RELATIVE_POINTERS | ||
58 | def_bool y | ||
59 | |||
57 | config NO_IOMEM | 60 | config NO_IOMEM |
58 | def_bool y | 61 | def_bool y |
59 | 62 | ||
diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index b1066b9fb5f8..9beeb9db9b23 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h | |||
@@ -5,12 +5,6 @@ | |||
5 | 5 | ||
6 | #ifdef CONFIG_BUG | 6 | #ifdef CONFIG_BUG |
7 | 7 | ||
8 | #ifdef CONFIG_64BIT | ||
9 | #define S390_LONG ".quad" | ||
10 | #else | ||
11 | #define S390_LONG ".long" | ||
12 | #endif | ||
13 | |||
14 | #ifdef CONFIG_DEBUG_BUGVERBOSE | 8 | #ifdef CONFIG_DEBUG_BUGVERBOSE |
15 | 9 | ||
16 | #define __EMIT_BUG(x) do { \ | 10 | #define __EMIT_BUG(x) do { \ |
@@ -21,7 +15,7 @@ | |||
21 | "2: .asciz \""__FILE__"\"\n" \ | 15 | "2: .asciz \""__FILE__"\"\n" \ |
22 | ".previous\n" \ | 16 | ".previous\n" \ |
23 | ".section __bug_table,\"a\"\n" \ | 17 | ".section __bug_table,\"a\"\n" \ |
24 | "3:\t" S390_LONG "\t1b,2b\n" \ | 18 | "3: .long 1b-3b,2b-3b\n" \ |
25 | " .short %0,%1\n" \ | 19 | " .short %0,%1\n" \ |
26 | " .org 3b+%2\n" \ | 20 | " .org 3b+%2\n" \ |
27 | ".previous\n" \ | 21 | ".previous\n" \ |
@@ -37,7 +31,7 @@ | |||
37 | "0: j 0b+2\n" \ | 31 | "0: j 0b+2\n" \ |
38 | "1:\n" \ | 32 | "1:\n" \ |
39 | ".section __bug_table,\"a\"\n" \ | 33 | ".section __bug_table,\"a\"\n" \ |
40 | "2:\t" S390_LONG "\t1b\n" \ | 34 | "2: .long 1b-2b\n" \ |
41 | " .short %0\n" \ | 35 | " .short %0\n" \ |
42 | " .org 2b+%1\n" \ | 36 | " .org 2b+%1\n" \ |
43 | ".previous\n" \ | 37 | ".previous\n" \ |