summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChintan Pandya <cpandya@codeaurora.org>2014-08-06 16:08:18 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-06 18:01:22 -0700
commit1d352bfd41e8219cdf9bebe79677700bdc38b540 (patch)
treed2e3e21f7dd702ddd65f0d57ce931d6162303960
parent61e02c745721a361ba238e70bfa1c84a4df1a4b7 (diff)
downloadlwn-1d352bfd41e8219cdf9bebe79677700bdc38b540.tar.gz
lwn-1d352bfd41e8219cdf9bebe79677700bdc38b540.zip
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>
-rw-r--r--include/linux/highmem.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 7fb31da45d03..9286a46b7d69 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -93,7 +93,7 @@ static inline int kmap_atomic_idx_push(void)
#ifdef CONFIG_DEBUG_HIGHMEM
WARN_ON_ONCE(in_irq() && !irqs_disabled());
- BUG_ON(idx > KM_TYPE_NR);
+ BUG_ON(idx >= KM_TYPE_NR);
#endif
return idx;
}