diff options
| author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2012-09-05 13:26:11 +0200 | 
|---|---|---|
| committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2012-09-26 15:45:10 +0200 | 
| commit | eb608fb366de123a97227437e5306f731f4a63c5 (patch) | |
| tree | 6466e9b0bcd942457e0aa251af48816e3e925d90 /arch/s390/include/asm/uaccess.h | |
| parent | 24996edce547fd981c089db9a12717fd76a51160 (diff) | |
| download | olio-linux-3.10-eb608fb366de123a97227437e5306f731f4a63c5.tar.xz olio-linux-3.10-eb608fb366de123a97227437e5306f731f4a63c5.zip  | |
s390/exceptions: switch to relative exception table entries
This is the s390 port of 70627654 "x86, extable: Switch to relative
exception table entries".
Reduces the size of our exception tables by 50% on 64 bit builds.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/uaccess.h')
| -rw-r--r-- | arch/s390/include/asm/uaccess.h | 15 | 
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h index a8ab18b18b5..34268df959a 100644 --- a/arch/s390/include/asm/uaccess.h +++ b/arch/s390/include/asm/uaccess.h @@ -76,9 +76,22 @@ static inline int __range_ok(unsigned long addr, unsigned long size)  struct exception_table_entry  { -        unsigned long insn, fixup; +	int insn, fixup;  }; +static inline unsigned long extable_insn(const struct exception_table_entry *x) +{ +	return (unsigned long)&x->insn + x->insn; +} + +static inline unsigned long extable_fixup(const struct exception_table_entry *x) +{ +	return (unsigned long)&x->fixup + x->fixup; +} + +#define ARCH_HAS_SORT_EXTABLE +#define ARCH_HAS_SEARCH_EXTABLE +  struct uaccess_ops {  	size_t (*copy_from_user)(size_t, const void __user *, void *);  	size_t (*copy_from_user_small)(size_t, const void __user *, void *);  |