aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorDaisuke HATAYAMA <d.hatayama@jp.fujitsu.com>2010-03-05 16:44:07 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-06 14:26:45 -0500
commit1fcccbac89f5bbc5e41aa72086960059fce372da (patch)
tree9e42ee69f0216e612e5bd4338d6203dbad2d002f /fs
parent088e7af73a962fcc8883b7a6392544d8342553d6 (diff)
elf coredump: replace ELF_CORE_EXTRA_* macros by functions
elf_core_dump() and elf_fdpic_core_dump() use #ifdef and the corresponding macro for hiding _multiline_ logics in functions. This patch removes #ifdef and replaces ELF_CORE_EXTRA_* by corresponding functions. For architectures not implemeonting ELF_CORE_EXTRA_*, we use weak functions in order to reduce a range of modification. This cleanup is for my next patches, but I think this cleanup itself is worth doing regardless of my firnal purpose. Signed-off-by: Daisuke HATAYAMA <d.hatayama@jp.fujitsu.com> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Jeff Dike <jdike@addtoit.com> Cc: David Howells <dhowells@redhat.com> Cc: Greg Ungerer <gerg@snapgear.com> Cc: Roland McGrath <roland@redhat.com> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Andi Kleen <andi@firstfloor.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/binfmt_elf.c14
-rw-r--r--fs/binfmt_elf_fdpic.c14
-rw-r--r--fs/compat_binfmt_elf.c2
3 files changed, 12 insertions, 18 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 0bcfbb05c32d..c1a499599b7d 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1878,9 +1878,7 @@ static int elf_core_dump(struct coredump_params *cprm)
1878 * Please check DEFAULT_MAX_MAP_COUNT definition when you modify here. 1878 * Please check DEFAULT_MAX_MAP_COUNT definition when you modify here.
1879 */ 1879 */
1880 segs = current->mm->map_count; 1880 segs = current->mm->map_count;
1881#ifdef ELF_CORE_EXTRA_PHDRS 1881 segs += elf_core_extra_phdrs();
1882 segs += ELF_CORE_EXTRA_PHDRS;
1883#endif
1884 1882
1885 gate_vma = get_gate_vma(current); 1883 gate_vma = get_gate_vma(current);
1886 if (gate_vma != NULL) 1884 if (gate_vma != NULL)
@@ -1958,9 +1956,8 @@ static int elf_core_dump(struct coredump_params *cprm)
1958 goto end_coredump; 1956 goto end_coredump;
1959 } 1957 }
1960 1958
1961#ifdef ELF_CORE_WRITE_EXTRA_PHDRS 1959 if (!elf_core_write_extra_phdrs(cprm->file, offset, &size, cprm->limit))
1962 ELF_CORE_WRITE_EXTRA_PHDRS; 1960 goto end_coredump;
1963#endif
1964 1961
1965 /* write out the notes section */ 1962 /* write out the notes section */
1966 if (!write_note_info(&info, cprm->file, &foffset)) 1963 if (!write_note_info(&info, cprm->file, &foffset))
@@ -1999,9 +1996,8 @@ static int elf_core_dump(struct coredump_params *cprm)
1999 } 1996 }
2000 } 1997 }
2001 1998
2002#ifdef ELF_CORE_WRITE_EXTRA_DATA 1999 if (!elf_core_write_extra_data(cprm->file, &size, cprm->limit))
2003 ELF_CORE_WRITE_EXTRA_DATA; 2000 goto end_coredump;
2004#endif
2005 2001
2006end_coredump: 2002end_coredump:
2007 set_fs(fs); 2003 set_fs(fs);
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index 63edf40b569b..952699a86ec3 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1664,9 +1664,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
1664 elf_core_copy_regs(&prstatus->pr_reg, cprm->regs); 1664 elf_core_copy_regs(&prstatus->pr_reg, cprm->regs);
1665 1665
1666 segs = current->mm->map_count; 1666 segs = current->mm->map_count;
1667#ifdef ELF_CORE_EXTRA_PHDRS 1667 segs += elf_core_extra_phdrs();
1668 segs += ELF_CORE_EXTRA_PHDRS;
1669#endif
1670 1668
1671 /* Set up header */ 1669 /* Set up header */
1672 fill_elf_fdpic_header(elf, segs + 1); /* including notes section */ 1670 fill_elf_fdpic_header(elf, segs + 1); /* including notes section */
@@ -1773,9 +1771,8 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
1773 goto end_coredump; 1771 goto end_coredump;
1774 } 1772 }
1775 1773
1776#ifdef ELF_CORE_WRITE_EXTRA_PHDRS 1774 if (!elf_core_write_extra_phdrs(cprm->file, offset, &size, cprm->limit))
1777 ELF_CORE_WRITE_EXTRA_PHDRS; 1775 goto end_coredump;
1778#endif
1779 1776
1780 /* write out the notes section */ 1777 /* write out the notes section */
1781 for (i = 0; i < numnote; i++) 1778 for (i = 0; i < numnote; i++)
@@ -1799,9 +1796,8 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
1799 mm_flags) < 0) 1796 mm_flags) < 0)
1800 goto end_coredump; 1797 goto end_coredump;
1801 1798
1802#ifdef ELF_CORE_WRITE_EXTRA_DATA 1799 if (!elf_core_write_extra_data(cprm->file, &size, cprm->limit))
1803 ELF_CORE_WRITE_EXTRA_DATA; 1800 goto end_coredump;
1804#endif
1805 1801
1806 if (cprm->file->f_pos != offset) { 1802 if (cprm->file->f_pos != offset) {
1807 /* Sanity check */ 1803 /* Sanity check */
diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c
index 0adced2f296f..112e45a17e99 100644
--- a/fs/compat_binfmt_elf.c
+++ b/fs/compat_binfmt_elf.c
@@ -28,10 +28,12 @@
28 28
29#undef elfhdr 29#undef elfhdr
30#undef elf_phdr 30#undef elf_phdr
31#undef elf_shdr
31#undef elf_note 32#undef elf_note
32#undef elf_addr_t 33#undef elf_addr_t
33#define elfhdr elf32_hdr 34#define elfhdr elf32_hdr
34#define elf_phdr elf32_phdr 35#define elf_phdr elf32_phdr
36#define elf_shdr elf32_shdr
35#define elf_note elf32_note 37#define elf_note elf32_note
36#define elf_addr_t Elf32_Addr 38#define elf_addr_t Elf32_Addr
37 39