Loading arch/powerpc/platforms/cell/spufs/coredump.c +3 −2 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ static int spufs_arch_write_note(struct spu_context *ctx, int i, char *name; char fullname[80], *buf; struct elf_note en; size_t skip; buf = (void *)get_zeroed_page(GFP_KERNEL); if (!buf) Loading Loading @@ -171,8 +172,8 @@ static int spufs_arch_write_note(struct spu_context *ctx, int i, if (rc < 0) goto out; if (!dump_skip(cprm, roundup(cprm->written - total + sz, 4) - cprm->written)) skip = roundup(cprm->file->f_pos - total + sz, 4) - cprm->file->f_pos; if (!dump_skip(cprm, skip)) goto Eio; out: free_page((unsigned long)buf); Loading fs/binfmt_elf.c +1 −1 Original line number Diff line number Diff line Loading @@ -2273,7 +2273,7 @@ static int elf_core_dump(struct coredump_params *cprm) goto end_coredump; /* Align to page */ if (!dump_skip(cprm, dataoff - cprm->written)) if (!dump_skip(cprm, dataoff - cprm->file->f_pos)) goto end_coredump; for (i = 0, vma = first_vma(current, gate_vma); vma != NULL; Loading fs/binfmt_elf_fdpic.c +1 −1 Original line number Diff line number Diff line Loading @@ -1787,7 +1787,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) goto end_coredump; } if (!dump_skip(cprm, dataoff - cprm->written)) if (!dump_skip(cprm, dataoff - cprm->file->f_pos)) goto end_coredump; if (!elf_fdpic_dump_segments(cprm)) Loading fs/coredump.c +3 −5 Original line number Diff line number Diff line Loading @@ -782,7 +782,7 @@ int dump_emit(struct coredump_params *cprm, const void *addr, int nr) struct file *file = cprm->file; loff_t pos = file->f_pos; ssize_t n; if (cprm->written + nr > cprm->limit) if (pos + nr > cprm->limit) return 0; while (nr) { if (dump_interrupted()) Loading @@ -791,7 +791,6 @@ int dump_emit(struct coredump_params *cprm, const void *addr, int nr) if (n <= 0) return 0; file->f_pos = pos; cprm->written += n; nr -= n; } return 1; Loading @@ -803,12 +802,11 @@ int dump_skip(struct coredump_params *cprm, size_t nr) static char zeroes[PAGE_SIZE]; struct file *file = cprm->file; if (file->f_op->llseek && file->f_op->llseek != no_llseek) { if (cprm->written + nr > cprm->limit) if (file->f_pos + nr > cprm->limit) return 0; if (dump_interrupted() || file->f_op->llseek(file, nr, SEEK_CUR) < 0) return 0; cprm->written += nr; return 1; } else { while (nr > PAGE_SIZE) { Loading @@ -823,7 +821,7 @@ EXPORT_SYMBOL(dump_skip); int dump_align(struct coredump_params *cprm, int align) { unsigned mod = cprm->written & (align - 1); unsigned mod = cprm->file->f_pos & (align - 1); if (align & (align - 1)) return 0; return mod ? dump_skip(cprm, align - mod) : 1; Loading include/linux/binfmts.h +0 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ struct coredump_params { struct file *file; unsigned long limit; unsigned long mm_flags; loff_t written; }; /* Loading Loading
arch/powerpc/platforms/cell/spufs/coredump.c +3 −2 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ static int spufs_arch_write_note(struct spu_context *ctx, int i, char *name; char fullname[80], *buf; struct elf_note en; size_t skip; buf = (void *)get_zeroed_page(GFP_KERNEL); if (!buf) Loading Loading @@ -171,8 +172,8 @@ static int spufs_arch_write_note(struct spu_context *ctx, int i, if (rc < 0) goto out; if (!dump_skip(cprm, roundup(cprm->written - total + sz, 4) - cprm->written)) skip = roundup(cprm->file->f_pos - total + sz, 4) - cprm->file->f_pos; if (!dump_skip(cprm, skip)) goto Eio; out: free_page((unsigned long)buf); Loading
fs/binfmt_elf.c +1 −1 Original line number Diff line number Diff line Loading @@ -2273,7 +2273,7 @@ static int elf_core_dump(struct coredump_params *cprm) goto end_coredump; /* Align to page */ if (!dump_skip(cprm, dataoff - cprm->written)) if (!dump_skip(cprm, dataoff - cprm->file->f_pos)) goto end_coredump; for (i = 0, vma = first_vma(current, gate_vma); vma != NULL; Loading
fs/binfmt_elf_fdpic.c +1 −1 Original line number Diff line number Diff line Loading @@ -1787,7 +1787,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) goto end_coredump; } if (!dump_skip(cprm, dataoff - cprm->written)) if (!dump_skip(cprm, dataoff - cprm->file->f_pos)) goto end_coredump; if (!elf_fdpic_dump_segments(cprm)) Loading
fs/coredump.c +3 −5 Original line number Diff line number Diff line Loading @@ -782,7 +782,7 @@ int dump_emit(struct coredump_params *cprm, const void *addr, int nr) struct file *file = cprm->file; loff_t pos = file->f_pos; ssize_t n; if (cprm->written + nr > cprm->limit) if (pos + nr > cprm->limit) return 0; while (nr) { if (dump_interrupted()) Loading @@ -791,7 +791,6 @@ int dump_emit(struct coredump_params *cprm, const void *addr, int nr) if (n <= 0) return 0; file->f_pos = pos; cprm->written += n; nr -= n; } return 1; Loading @@ -803,12 +802,11 @@ int dump_skip(struct coredump_params *cprm, size_t nr) static char zeroes[PAGE_SIZE]; struct file *file = cprm->file; if (file->f_op->llseek && file->f_op->llseek != no_llseek) { if (cprm->written + nr > cprm->limit) if (file->f_pos + nr > cprm->limit) return 0; if (dump_interrupted() || file->f_op->llseek(file, nr, SEEK_CUR) < 0) return 0; cprm->written += nr; return 1; } else { while (nr > PAGE_SIZE) { Loading @@ -823,7 +821,7 @@ EXPORT_SYMBOL(dump_skip); int dump_align(struct coredump_params *cprm, int align) { unsigned mod = cprm->written & (align - 1); unsigned mod = cprm->file->f_pos & (align - 1); if (align & (align - 1)) return 0; return mod ? dump_skip(cprm, align - mod) : 1; Loading
include/linux/binfmts.h +0 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ struct coredump_params { struct file *file; unsigned long limit; unsigned long mm_flags; loff_t written; }; /* Loading