KAMEZAWA Hiroyuki d0107eb073 kcore: fix vread/vwrite to be aware of holes
vread/vwrite access vmalloc area without checking there is a page or not.
In most case, this works well.

In old ages, the caller of get_vm_ara() is only IOREMAP and there is no
memory hole within vm_struct's [addr...addr + size - PAGE_SIZE] (
-PAGE_SIZE is for a guard page.)

After per-cpu-alloc patch, it uses get_vm_area() for reserve continuous
virtual address but remap _later_.  There tend to be a hole in valid
vmalloc area in vm_struct lists.  Then, skip the hole (not mapped page) is
necessary.  This patch updates vread/vwrite() for avoiding memory hole.

Routines which access vmalloc area without knowing for which addr is used
are
  - /proc/kcore
  - /dev/kmem

kcore checks IOREMAP, /dev/kmem doesn't.  After this patch, IOREMAP is
checked and /dev/kmem will avoid to read/write it.  Fixes to /proc/kcore
will be in the next patch in series.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: WANG Cong <xiyou.wangcong@gmail.com>
Cc: Mike Smith <scgtrp@gmail.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-22 07:17:34 -07:00
..
2009-04-01 08:59:13 -07:00
2009-09-22 07:17:27 -07:00
2009-06-16 19:47:28 -07:00
2009-09-22 07:17:33 -07:00
2009-09-22 07:17:33 -07:00
2009-09-22 07:17:31 -07:00
2009-09-22 07:17:31 -07:00
2009-08-10 08:31:16 -07:00
2009-09-22 07:17:29 -07:00
2009-09-22 07:17:33 -07:00
2009-09-22 07:17:33 -07:00
2009-09-22 07:17:33 -07:00
2008-06-12 18:05:41 -07:00
2007-10-20 01:27:18 +02:00
2009-09-22 07:17:31 -07:00
2009-06-29 09:57:10 +03:00
2009-09-22 07:17:33 -07:00
2009-06-23 12:50:05 -07:00
2009-09-22 07:17:30 -07:00
2009-09-22 07:17:29 -07:00