Revision c85e9a97c4102ce2e83112da850d838cfab5ab13 authored by Wu Fengguang on 02 February 2010, 21:44:06 UTC, committed by Linus Torvalds on 03 February 2010, 02:11:22 UTC
write_kmem() used to assume vwrite() always return the full buffer length.
However now vwrite() could return 0 to indicate memory hole.  This
creates a bug that "buf" is not advanced accordingly.

Fix it to simply ignore the return value, hence the memory hole.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Tejun Heo <tj@kernel.org>
Cc: Nick Piggin <npiggin@suse.de>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 325fda7
History
File Mode Size
Kconfig -rw-r--r-- 9.3 KB
Kconfig.debug -rw-r--r-- 1014 bytes
Makefile -rw-r--r-- 1.5 KB
backing-dev.c -rw-r--r-- 17.9 KB
bootmem.c -rw-r--r-- 19.7 KB
bounce.c -rw-r--r-- 6.5 KB
debug-pagealloc.c -rw-r--r-- 2.5 KB
dmapool.c -rw-r--r-- 12.9 KB
fadvise.c -rw-r--r-- 3.3 KB
failslab.c -rw-r--r-- 1.3 KB
filemap.c -rw-r--r-- 65.3 KB
filemap_xip.c -rw-r--r-- 11.0 KB
fremap.c -rw-r--r-- 6.7 KB
highmem.c -rw-r--r-- 11.4 KB
hugetlb.c -rw-r--r-- 72.0 KB
hwpoison-inject.c -rw-r--r-- 3.2 KB
init-mm.c -rw-r--r-- 538 bytes
internal.h -rw-r--r-- 7.1 KB
kmemcheck.c -rw-r--r-- 2.8 KB
kmemleak-test.c -rw-r--r-- 3.3 KB
kmemleak.c -rw-r--r-- 47.5 KB
ksm.c -rw-r--r-- 52.7 KB
maccess.c -rw-r--r-- 1.6 KB
madvise.c -rw-r--r-- 11.3 KB
memcontrol.c -rw-r--r-- 86.0 KB
memory-failure.c -rw-r--r-- 33.6 KB
memory.c -rw-r--r-- 92.1 KB
memory_hotplug.c -rw-r--r-- 21.5 KB
mempolicy.c -rw-r--r-- 62.5 KB
mempool.c -rw-r--r-- 8.9 KB
migrate.c -rw-r--r-- 25.5 KB
mincore.c -rw-r--r-- 6.6 KB
mlock.c -rw-r--r-- 16.0 KB
mm_init.c -rw-r--r-- 3.7 KB
mmap.c -rw-r--r-- 66.1 KB
mmu_context.c -rw-r--r-- 1.3 KB
mmu_notifier.c -rw-r--r-- 8.7 KB
mmzone.c -rw-r--r-- 1.8 KB
mprotect.c -rw-r--r-- 7.7 KB
mremap.c -rw-r--r-- 13.0 KB
msync.c -rw-r--r-- 2.4 KB
nommu.c -rw-r--r-- 47.8 KB
oom_kill.c -rw-r--r-- 17.7 KB
page-writeback.c -rw-r--r-- 36.1 KB
page_alloc.c -rw-r--r-- 140.8 KB
page_cgroup.c -rw-r--r-- 10.2 KB
page_io.c -rw-r--r-- 3.2 KB
page_isolation.c -rw-r--r-- 3.6 KB
pagewalk.c -rw-r--r-- 3.9 KB
percpu.c -rw-r--r-- 62.6 KB
prio_tree.c -rw-r--r-- 6.3 KB
quicklist.c -rw-r--r-- 2.4 KB
readahead.c -rw-r--r-- 15.3 KB
rmap.c -rw-r--r-- 36.6 KB
shmem.c -rw-r--r-- 69.2 KB
slab.c -rw-r--r-- 117.2 KB
slob.c -rw-r--r-- 17.2 KB
slub.c -rw-r--r-- 112.6 KB
sparse-vmemmap.c -rw-r--r-- 4.3 KB
sparse.c -rw-r--r-- 16.3 KB
swap.c -rw-r--r-- 12.9 KB
swap_state.c -rw-r--r-- 10.4 KB
swapfile.c -rw-r--r-- 62.1 KB
thrash.c -rw-r--r-- 1.9 KB
truncate.c -rw-r--r-- 15.8 KB
util.c -rw-r--r-- 6.6 KB
vmalloc.c -rw-r--r-- 60.8 KB
vmscan.c -rw-r--r-- 79.8 KB
vmstat.c -rw-r--r-- 22.2 KB

back to top