All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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: link
Be 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.