mm: don't call pte_unmap() against an improper pte
authorDaisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Mon, 26 Oct 2009 23:50:23 +0000 (16:50 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 29 Oct 2009 14:39:32 +0000 (07:39 -0700)
commitc36987e2ef32e1bb7850379515f21187cba44754
tree0b0a6b6a54c2a80de86426a74367ec4b1f089b61
parent2545f038f4af0ff9945d47c10f988418dda50140
mm: don't call pte_unmap() against an improper pte

There are some places where we do like:

pte = pte_map();
do {
(do break in some conditions)
} while (pte++, ...);
pte_unmap(pte - 1);

But if the loop breaks at the first loop, pte_unmap() unmaps invalid pte.

This patch is a fix for this problem.

Signed-off-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Reviewd-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/memory.c