[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2375c9f90912150029w6edafb17s6fb0bcf41798263a@mail.gmail.com>
Date: Tue, 15 Dec 2009 16:29:13 +0800
From: Américo Wang <xiyou.wangcong@...il.com>
To: Daisuke HATAYAMA <d.hatayama@...fujitsu.com>
Cc: linux-kernel@...r.kernel.org, akpm@...ux-foundation.org,
jdike@...toit.com, tony.luck@...el.com, mhiramat@...hat.com
Subject: Re: [RFC, PATCH 2/4] elf_core_dump(): Remove DUMP_WRITE macro
On Tue, Dec 15, 2009 at 10:41 AM, Daisuke HATAYAMA
<d.hatayama@...fujitsu.com> wrote:
> In DUMP_WRITE macro, some local variables and goto statement are used
> implicitly, which makes it confusing to understand how the dumping
> process behaves. So, clean up it by unfolding the macro body directly
> to the point where the original macro is used plus a bit of style
> change.
>
> Now that the previous patch replaced ELF_CORE_EXTRA_* macros in
> fs/binfmt_elf.c, there is no users for DUMP_WRITE macro in
> fs/binfmt_elf.c. Thus remove the definition of DUMP_WRITE macro.
>
> Signed-off-by: Daisuke HATAYAMA <d.hatayama@...fujitsu.com>
I assume you at least did a build test?
I like this patch:
Acked-by: WANG Cong <xiyou.wangcong@...il.com>
> ---
> fs/binfmt_elf.c | 17 ++++++++++-------
> 1 files changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
> index 5f7be51..9666a8a 100644
> --- a/fs/binfmt_elf.c
> +++ b/fs/binfmt_elf.c
> @@ -1277,10 +1277,6 @@ static int writenote(struct memelfnote *men, struct file *file,
> }
> #undef DUMP_WRITE
>
> -#define DUMP_WRITE(addr, nr) \
> - if ((size += (nr)) > limit || !dump_write(file, (addr), (nr))) \
> - goto end_coredump;
> -
> static void fill_elf_header(struct elfhdr *elf, int segs,
> u16 machine, u32 flags, u8 osabi)
> {
> @@ -1981,7 +1977,10 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file, un
> fs = get_fs();
> set_fs(KERNEL_DS);
>
> - DUMP_WRITE(elf, sizeof(*elf));
> + size += sizeof(*elf);
> + if (size > limit || !dump_write(file, elf, sizeof(*elf)))
> + goto end_coredump;
> +
> offset += sizeof(*elf); /* Elf header */
> offset += (segs + 1) * sizeof(struct elf_phdr); /* Program headers */
> foffset = offset;
> @@ -1995,7 +1994,9 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file, un
>
> fill_elf_note_phdr(&phdr, sz, offset);
> offset += sz;
> - DUMP_WRITE(&phdr, sizeof(phdr));
> + size += sizeof(phdr);
> + if (size > limit || !dump_write(file, &phdr, sizeof(phdr)))
> + goto end_coredump;
> }
>
> dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
> @@ -2026,7 +2027,9 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file, un
> phdr.p_flags |= PF_X;
> phdr.p_align = ELF_EXEC_PAGESIZE;
>
> - DUMP_WRITE(&phdr, sizeof(phdr));
> + size += sizeof(phdr);
> + if (size > limit || !dump_write(file, &phdr, sizeof(phdr)))
> + goto end_coredump;
> }
>
> if (!elf_core_write_extra_phdrs(file, offset, &size, limit))
> --
> 1.6.5.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists