From: Richard Weinberger <richard@nod.at> To: linux-arch@vger.kernel.org Cc: linux-kernel@vger.kernel.org, rth@twiddle.net, ink@jurassic.park.msu.ru, mattst88@gmail.com, vgupta@synopsys.com, linux@arm.linux.org.uk, catalin.marinas@arm.com, will.deacon@arm.com, hskinnemoen@gmail.com, egtvedt@samfundet.no, realmz6@gmail.com, msalter@redhat.com, a-jacquiot@ti.com, starvik@axis.com, jesper.nilsson@axis.com, dhowells@redhat.com, rkuo@codeaurora.org, tony.luck@intel.com, fenghua.yu@intel.com, geert@linux-m68k.org, james.hogan@imgtec.com, monstr@monstr.eu, ralf@linux-mips.org, yasutake.koichi@jp.panasonic.com, lftan@altera.com, jonas@southpole.se, jejb@parisc-linux.org, deller@gmx.de, benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au, schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com, liqin.linux@gmail.com, lennox.wu@gmail.com, davem@davemloft.net, cmetcalf@ezchip.com, jdike@addtoit.com, akpm@linux-foundation.org, oleg@redhat.com, hch@infradead.org, viro@zeniv.linux.org.uk, torvalds@linux-foundation.org, Richard Weinberger <richard@nod.at> Subject: [PATCH 24/24] Remove rest of exec domains. Date: Sat, 11 Apr 2015 22:48:03 +0200 [thread overview] Message-ID: <1428785283-20501-25-git-send-email-richard@nod.at> (raw) In-Reply-To: <1428785283-20501-1-git-send-email-richard@nod.at> It is gone from all archs, now we can remove the final bits. Signed-off-by: Richard Weinberger <richard@nod.at> --- include/linux/personality.h | 40 +--------------------------------------- include/linux/sched.h | 6 ------ kernel/exec_domain.c | 37 ------------------------------------- 3 files changed, 1 insertion(+), 82 deletions(-) diff --git a/include/linux/personality.h b/include/linux/personality.h index 646c0a7..aeb7892 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h @@ -3,52 +3,14 @@ #include <uapi/linux/personality.h> - -/* - * Handling of different ABIs (personalities). - */ - -struct exec_domain; -struct pt_regs; - -extern int register_exec_domain(struct exec_domain *); -extern int unregister_exec_domain(struct exec_domain *); -extern int __set_personality(unsigned int); - - -/* - * Description of an execution domain. - * - * The first two members are refernced from assembly source - * and should stay where they are unless explicitly needed. - */ -typedef void (*handler_t)(int, struct pt_regs *); - -struct exec_domain { - const char *name; /* name of the execdomain */ - handler_t handler; /* handler for syscalls */ - unsigned char pers_low; /* lowest personality */ - unsigned char pers_high; /* highest personality */ - unsigned long *signal_map; /* signal mapping */ - unsigned long *signal_invmap; /* reverse signal mapping */ - struct map_segment *err_map; /* error mapping */ - struct map_segment *socktype_map; /* socket type mapping */ - struct map_segment *sockopt_map; /* socket option mapping */ - struct map_segment *af_map; /* address family mapping */ - struct module *module; /* module context of the ed. */ - struct exec_domain *next; /* linked list (internal) */ -}; - /* * Return the base personality without flags. */ #define personality(pers) (pers & PER_MASK) - /* * Change personality of the currently running process. */ -#define set_personality(pers) \ - ((current->personality == (pers)) ? 0 : __set_personality(pers)) +#define set_personality(pers) (current->personality = (pers)) #endif /* _LINUX_PERSONALITY_H */ diff --git a/include/linux/sched.h b/include/linux/sched.h index a419b65..14d9117 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -125,7 +125,6 @@ struct sched_attr { u64 sched_period; }; -struct exec_domain; struct futex_pi_state; struct robust_list_head; struct bio_list; @@ -2288,11 +2287,6 @@ extern void set_curr_task(int cpu, struct task_struct *p); void yield(void); -/* - * The default (Linux) execution domain. - */ -extern struct exec_domain default_exec_domain; - union thread_union { struct thread_info thread_info; unsigned long stack[THREAD_SIZE/sizeof(long)]; diff --git a/kernel/exec_domain.c b/kernel/exec_domain.c index b2fb57d..6873bb3 100644 --- a/kernel/exec_domain.c +++ b/kernel/exec_domain.c @@ -20,43 +20,6 @@ #include <linux/types.h> #include <linux/fs_struct.h> -static void default_handler(int, struct pt_regs *); -static unsigned long ident_map[32] = { - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31 -}; - -struct exec_domain default_exec_domain = { - .name = "Linux", /* name */ - .handler = default_handler, /* lcall7 causes a seg fault. */ - .pers_low = 0, /* PER_LINUX personality. */ - .pers_high = 0, /* PER_LINUX personality. */ - .signal_map = ident_map, /* Identity map signals. */ - .signal_invmap = ident_map, /* - both ways. */ -}; - - -static void -default_handler(int segment, struct pt_regs *regp) -{ - set_personality(0); - - if (current_thread_info()->exec_domain->handler != default_handler) - current_thread_info()->exec_domain->handler(segment, regp); - else - send_sig(SIGSEGV, current, 1); -} - -int __set_personality(unsigned int personality) -{ - current->personality = personality; - - return 0; -} -EXPORT_SYMBOL(__set_personality); - #ifdef CONFIG_PROC_FS static int execdomains_proc_show(struct seq_file *m, void *v) { -- 1.8.4.5
WARNING: multiple messages have this Message-ID (diff)
From: Richard Weinberger <richard@nod.at> To: linux-arch@vger.kernel.org Cc: linux-kernel@vger.kernel.org, rth@twiddle.net, ink@jurassic.park.msu.ru, mattst88@gmail.com, vgupta@synopsys.com, linux@arm.linux.org.uk, catalin.marinas@arm.com, will.deacon@arm.com, hskinnemoen@gmail.com, egtvedt@samfundet.no, realmz6@gmail.com, msalter@redhat.com, a-jacquiot@ti.com, starvik@axis.com, jesper.nilsson@axis.com, dhowells@redhat.com, rkuo@codeaurora.org, tony.luck@intel.com, fenghua.yu@intel.com, geert@linux-m68k.org, james.hogan@imgtec.com, monstr@monstr.eu, ralf@linux-mips.org, yasutake.koichi@jp.panasonic.com, lftan@altera.com, jonas@southpole.se, jejb@parisc-linux.org, deller@gmx.de, benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au, schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com, liqin.linux@gmail.com, lennox.wu@gmail.com, davem@davemloft.net, cmetcalf@ezchip.com, jdike@addtoit.com, akpm@linux-foundation.org, oleg@redhat.com, hch@inf Subject: [PATCH 24/24] Remove rest of exec domains. Date: Sat, 11 Apr 2015 22:48:03 +0200 [thread overview] Message-ID: <1428785283-20501-25-git-send-email-richard@nod.at> (raw) In-Reply-To: <1428785283-20501-1-git-send-email-richard@nod.at> It is gone from all archs, now we can remove the final bits. Signed-off-by: Richard Weinberger <richard@nod.at> --- include/linux/personality.h | 40 +--------------------------------------- include/linux/sched.h | 6 ------ kernel/exec_domain.c | 37 ------------------------------------- 3 files changed, 1 insertion(+), 82 deletions(-) diff --git a/include/linux/personality.h b/include/linux/personality.h index 646c0a7..aeb7892 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h @@ -3,52 +3,14 @@ #include <uapi/linux/personality.h> - -/* - * Handling of different ABIs (personalities). - */ - -struct exec_domain; -struct pt_regs; - -extern int register_exec_domain(struct exec_domain *); -extern int unregister_exec_domain(struct exec_domain *); -extern int __set_personality(unsigned int); - - -/* - * Description of an execution domain. - * - * The first two members are refernced from assembly source - * and should stay where they are unless explicitly needed. - */ -typedef void (*handler_t)(int, struct pt_regs *); - -struct exec_domain { - const char *name; /* name of the execdomain */ - handler_t handler; /* handler for syscalls */ - unsigned char pers_low; /* lowest personality */ - unsigned char pers_high; /* highest personality */ - unsigned long *signal_map; /* signal mapping */ - unsigned long *signal_invmap; /* reverse signal mapping */ - struct map_segment *err_map; /* error mapping */ - struct map_segment *socktype_map; /* socket type mapping */ - struct map_segment *sockopt_map; /* socket option mapping */ - struct map_segment *af_map; /* address family mapping */ - struct module *module; /* module context of the ed. */ - struct exec_domain *next; /* linked list (internal) */ -}; - /* * Return the base personality without flags. */ #define personality(pers) (pers & PER_MASK) - /* * Change personality of the currently running process. */ -#define set_personality(pers) \ - ((current->personality == (pers)) ? 0 : __set_personality(pers)) +#define set_personality(pers) (current->personality = (pers)) #endif /* _LINUX_PERSONALITY_H */ diff --git a/include/linux/sched.h b/include/linux/sched.h index a419b65..14d9117 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -125,7 +125,6 @@ struct sched_attr { u64 sched_period; }; -struct exec_domain; struct futex_pi_state; struct robust_list_head; struct bio_list; @@ -2288,11 +2287,6 @@ extern void set_curr_task(int cpu, struct task_struct *p); void yield(void); -/* - * The default (Linux) execution domain. - */ -extern struct exec_domain default_exec_domain; - union thread_union { struct thread_info thread_info; unsigned long stack[THREAD_SIZE/sizeof(long)]; diff --git a/kernel/exec_domain.c b/kernel/exec_domain.c index b2fb57d..6873bb3 100644 --- a/kernel/exec_domain.c +++ b/kernel/exec_domain.c @@ -20,43 +20,6 @@ #include <linux/types.h> #include <linux/fs_struct.h> -static void default_handler(int, struct pt_regs *); -static unsigned long ident_map[32] = { - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31 -}; - -struct exec_domain default_exec_domain = { - .name = "Linux", /* name */ - .handler = default_handler, /* lcall7 causes a seg fault. */ - .pers_low = 0, /* PER_LINUX personality. */ - .pers_high = 0, /* PER_LINUX personality. */ - .signal_map = ident_map, /* Identity map signals. */ - .signal_invmap = ident_map, /* - both ways. */ -}; - - -static void -default_handler(int segment, struct pt_regs *regp) -{ - set_personality(0); - - if (current_thread_info()->exec_domain->handler != default_handler) - current_thread_info()->exec_domain->handler(segment, regp); - else - send_sig(SIGSEGV, current, 1); -} - -int __set_personality(unsigned int personality) -{ - current->personality = personality; - - return 0; -} -EXPORT_SYMBOL(__set_personality); - #ifdef CONFIG_PROC_FS static int execdomains_proc_show(struct seq_file *m, void *v) { -- 1.8.4.5
next prev parent reply other threads:[~2015-04-11 20:49 UTC|newest] Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-04-11 20:47 Remove execution domain support Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 01/24] arm: Remove RISC OS personality Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 02/24] ia64: Remove Linux/x86 exec domain support Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 03/24] Remove execution " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 04/24] arm: Remove signal translation and exec_domain Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 05/24] arm64: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-13 13:52 ` Thierry Reding 2015-04-13 13:52 ` Thierry Reding 2015-04-11 20:47 ` [PATCH 06/24] blackfin: Autogenerate offsets in struct thread_info Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 07/24] blackfin: Remove exec_domain usage Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 08/24] frv: Remove signal translation and exec_domain Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 09/24] m32r: Autogenerate offsets in struct thread_info Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 10/24] m32r: Remove signal translation and exec_domain Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 11/24] m68k: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-14 7:48 ` Geert Uytterhoeven 2015-04-14 7:48 ` Geert Uytterhoeven 2015-04-11 20:47 ` [PATCH 12/24] microblaze: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 13/24] mn10300: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 14/24] s390: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 15/24] sh: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 16/24] sparc: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 17/24] tile: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 18/24] um: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 19/24] unicore32: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:47 ` [PATCH 20/24] x86: " Richard Weinberger 2015-04-11 20:47 ` Richard Weinberger 2015-04-11 20:48 ` [PATCH 21/24] xtensa: " Richard Weinberger 2015-04-11 20:48 ` Richard Weinberger 2015-04-11 20:48 ` [PATCH 22/24] arc: " Richard Weinberger 2015-04-11 20:48 ` Richard Weinberger 2015-04-11 20:48 ` [PATCH 23/24] arch: Remove exec_domain from remaining archs Richard Weinberger 2015-04-11 20:48 ` Richard Weinberger 2015-04-13 8:19 ` Jesper Nilsson 2015-04-13 8:19 ` Jesper Nilsson 2015-04-13 16:57 ` Hans-Christian Egtvedt 2015-04-13 16:57 ` Hans-Christian Egtvedt 2015-04-11 20:48 ` Richard Weinberger [this message] 2015-04-11 20:48 ` [PATCH 24/24] Remove rest of exec domains Richard Weinberger 2015-04-11 20:52 ` Remove execution domain support Linus Torvalds 2015-04-11 20:52 ` Linus Torvalds 2015-04-11 21:04 ` Al Viro 2015-04-11 21:04 ` Al Viro 2015-04-11 21:08 ` Richard Weinberger 2015-04-11 21:08 ` Richard Weinberger 2015-04-11 21:12 ` Richard Weinberger 2015-04-11 21:12 ` Richard Weinberger 2015-04-11 22:31 ` David Miller 2015-04-11 22:31 ` David Miller 2015-04-11 23:25 ` Benjamin Herrenschmidt 2015-04-11 23:25 ` Benjamin Herrenschmidt 2015-04-11 23:30 ` Stephen Rothwell 2015-04-11 23:30 ` Stephen Rothwell 2015-04-12 0:06 ` Stephen Rothwell 2015-04-12 0:06 ` Stephen Rothwell 2015-04-12 2:03 ` Guenter Roeck 2015-04-12 20:57 ` Remove execution domain support v2 Richard Weinberger 2015-04-12 20:57 ` Richard Weinberger 2015-04-12 21:13 ` Stephen Rothwell 2015-04-12 21:13 ` Stephen Rothwell 2015-04-12 21:17 ` Richard Weinberger 2015-04-12 21:17 ` Richard Weinberger 2015-04-12 21:56 ` Linus Torvalds 2015-04-12 21:56 ` Linus Torvalds 2015-04-12 22:06 ` Richard Weinberger 2015-04-12 22:06 ` Richard Weinberger 2015-04-12 22:57 ` Guenter Roeck 2015-04-12 22:57 ` Guenter Roeck 2015-04-14 1:21 ` Remove execution domain support Andy Lutomirski
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1428785283-20501-25-git-send-email-richard@nod.at \ --to=richard@nod.at \ --cc=a-jacquiot@ti.com \ --cc=akpm@linux-foundation.org \ --cc=benh@kernel.crashing.org \ --cc=catalin.marinas@arm.com \ --cc=cmetcalf@ezchip.com \ --cc=davem@davemloft.net \ --cc=deller@gmx.de \ --cc=dhowells@redhat.com \ --cc=egtvedt@samfundet.no \ --cc=fenghua.yu@intel.com \ --cc=geert@linux-m68k.org \ --cc=hch@infradead.org \ --cc=heiko.carstens@de.ibm.com \ --cc=hskinnemoen@gmail.com \ --cc=ink@jurassic.park.msu.ru \ --cc=james.hogan@imgtec.com \ --cc=jdike@addtoit.com \ --cc=jejb@parisc-linux.org \ --cc=jesper.nilsson@axis.com \ --cc=jonas@southpole.se \ --cc=lennox.wu@gmail.com \ --cc=lftan@altera.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=liqin.linux@gmail.com \ --cc=mattst88@gmail.com \ --cc=monstr@monstr.eu \ --cc=mpe@ellerman.id.au \ --cc=msalter@redhat.com \ --cc=oleg@redhat.com \ --cc=paulus@samba.org \ --cc=ralf@linux-mips.org \ --cc=realmz6@gmail.com \ --cc=rkuo@codeaurora.org \ --cc=rth@twiddle.net \ --cc=schwidefsky@de.ibm.com \ --cc=starvik@axis.com \ --cc=tony.luck@intel.com \ --cc=torvalds@linux-foundation.org \ --cc=vgupta@synopsys.com \ --cc=viro@zeniv.linux.org.uk \ --cc=will.deacon@arm.com \ --cc=yasutake.koichi@jp.panasonic.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.