diff options
author | Alexey Dobriyan <adobriyan@sw.ru> | 2007-10-17 02:26:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-17 11:42:46 -0400 |
commit | e4dc1b14d8dc57c3975bf69740e4f5cda6bfba09 (patch) | |
tree | 084771b19ecb4335c31cdd91093f7a02b7861e69 /arch | |
parent | deba0f49b9345f885a53a077623a68cef89c01d5 (diff) |
Use list_head in binfmt handling
Switch single-linked binfmt formats list to usual list_head's. This leads
to one-liners in register_binfmt() and unregister_binfmt(). The downside
is one pointer more in struct linux_binfmt. This is not a problem, since
the set of registered binfmts on typical box is very small -- (ELF +
something distro enabled for you).
Test-booted, played with executable .txt files, modprobe/rmmod binfmt_misc.
Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/kernel/irixelf.c | 7 | ||||
-rw-r--r-- | arch/sparc64/kernel/binfmt_aout32.c | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/arch/mips/kernel/irixelf.c b/arch/mips/kernel/irixelf.c index 8ef5cf4cc423..5a3fe43e3019 100644 --- a/arch/mips/kernel/irixelf.c +++ b/arch/mips/kernel/irixelf.c | |||
@@ -47,8 +47,11 @@ static int irix_core_dump(long signr, struct pt_regs * regs, | |||
47 | struct file *file); | 47 | struct file *file); |
48 | 48 | ||
49 | static struct linux_binfmt irix_format = { | 49 | static struct linux_binfmt irix_format = { |
50 | NULL, THIS_MODULE, load_irix_binary, load_irix_library, | 50 | .module = THIS_MODULE, |
51 | irix_core_dump, PAGE_SIZE | 51 | .load_binary = load_irix_binary, |
52 | .load_shlib = load_irix_library, | ||
53 | .core_dump = irix_core_dump, | ||
54 | .min_coredump = PAGE_SIZE, | ||
52 | }; | 55 | }; |
53 | 56 | ||
54 | /* Debugging routines. */ | 57 | /* Debugging routines. */ |
diff --git a/arch/sparc64/kernel/binfmt_aout32.c b/arch/sparc64/kernel/binfmt_aout32.c index d208cc7804f2..c8acbeab49b4 100644 --- a/arch/sparc64/kernel/binfmt_aout32.c +++ b/arch/sparc64/kernel/binfmt_aout32.c | |||
@@ -38,8 +38,11 @@ static int load_aout32_library(struct file*); | |||
38 | static int aout32_core_dump(long signr, struct pt_regs * regs, struct file *file); | 38 | static int aout32_core_dump(long signr, struct pt_regs * regs, struct file *file); |
39 | 39 | ||
40 | static struct linux_binfmt aout32_format = { | 40 | static struct linux_binfmt aout32_format = { |
41 | NULL, THIS_MODULE, load_aout32_binary, load_aout32_library, aout32_core_dump, | 41 | .module = THIS_MODULE, |
42 | PAGE_SIZE | 42 | .load_binary = load_aout32_binary, |
43 | .load_shlib = load_aout32_library, | ||
44 | .core_dump = aout32_core_dump, | ||
45 | .min_coredump = PAGE_SIZE, | ||
43 | }; | 46 | }; |
44 | 47 | ||
45 | static void set_brk(unsigned long start, unsigned long end) | 48 | static void set_brk(unsigned long start, unsigned long end) |