tmpfs: fix highmem swapoff crash regression
authorHugh Dickins <hughd@google.com>
Fri, 20 May 2011 22:47:33 +0000 (15:47 -0700)
committerSteve Conklin <sconklin@canonical.com>
Thu, 2 Jun 2011 19:23:31 +0000 (14:23 -0500)
commit83edebb369f2f749ca748185c6dbdd05afa2becb
tree3f6017054f9f3608972c43986d2550038d1e9228
parenta1d331e9b1460351f105480a008a8fadb5fc70ea
tmpfs: fix highmem swapoff crash regression

BugLink: http://bugs.launchpad.net/bugs/788691

commit e6c9366b2adb52cba64b359b3050200743c7568c upstream.

Commit 778dd893ae78 ("tmpfs: fix race between umount and swapoff")
forgot the new rules for strict atomic kmap nesting, causing

  WARNING: at arch/x86/mm/highmem_32.c:81

from __kunmap_atomic(), then

  BUG: unable to handle kernel paging request at fffb9000

from shmem_swp_set() when shmem_unuse_inode() is handling swapoff with
highmem in use.  My disgrace again.

See
  https://bugzilla.kernel.org/show_bug.cgi?id=35352

Reported-by: Witold Baryluk <baryluk@smp.if.uj.edu.pl>
Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Steve Conklin <sconklin@canonical.com>
mm/shmem.c