Remove rest of exec domains.
Richard Weinberger [Sat, 11 Apr 2015 19:45:22 +0000 (21:45 +0200)]
It is gone from all archs, now we can remove
the final bits.

Signed-off-by: Richard Weinberger <richard@nod.at>
(cherry picked from commit 9058f3b326dbe8cd2ebea7f3cfe367b0d101039b)

Change-Id: Ibca4326cc39f6b238f20b5016746c8d02f06b096

include/linux/personality.h
include/linux/sched.h
kernel/exec_domain.c

index 646c0a7..aeb7892 100644 (file)
@@ -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 */
index 653dbe0..54342fa 100644 (file)
@@ -71,7 +71,6 @@ struct sched_param {
 
 #include <asm/processor.h>
 
-struct exec_domain;
 struct futex_pi_state;
 struct robust_list_head;
 struct bio_list;
@@ -1971,11 +1970,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)];
index b31cceb..6873bb3 100644 (file)
 #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;
-}
-
 #ifdef CONFIG_PROC_FS
 static int execdomains_proc_show(struct seq_file *m, void *v)
 {
@@ -92,8 +56,3 @@ SYSCALL_DEFINE1(personality, unsigned int, personality)
 
        return old;
 }
-
-
-EXPORT_SYMBOL(register_exec_domain);
-EXPORT_SYMBOL(unregister_exec_domain);
-EXPORT_SYMBOL(__set_personality);