mm: BUG when __kmap_atomic_idx equals KM_TYPE_NR
authorChintan Pandya <cpandya@codeaurora.org>
Wed, 6 Aug 2014 23:08:18 +0000 (16:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 7 Aug 2014 01:01:22 +0000 (18:01 -0700)
commit1d352bfd41e8219cdf9bebe79677700bdc38b540
treed2e3e21f7dd702ddd65f0d57ce931d6162303960
parent61e02c745721a361ba238e70bfa1c84a4df1a4b7
mm: BUG when __kmap_atomic_idx equals KM_TYPE_NR

__kmap_atomic_idx is per_cpu variable.  Each CPU can use KM_TYPE_NR
entries from FIXMAP i.e.  from 0 to KM_TYPE_NR - 1.  Allowing
__kmap_atomic_idx to over- shoot to KM_TYPE_NR can mess up with next
CPU's 0th entry which is a bug.  Hence BUG_ON if __kmap_atomic_idx >=
KM_TYPE_NR.

Fix the off-by-on in this test.

Signed-off-by: Chintan Pandya <cpandya@codeaurora.org>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/highmem.h