Messages in this thread Patch in this message | | | Subject | [PATCH 1/2] Fix race in debug_kmap_atomic() which could cause warn_count to underflow | From | Soeren Sandmann <> | Date | 28 Oct 2009 18:55:36 +0100 |
| |
debug_kmap_atomic() tries to prevent ever printing more than 10 warnings, but it does so by testing whether an unsigned integer is equal to 0. However, if the warning is caused by a nested IRQ, then this counter may underflow and the stream of warnings will never end.
Fix that by using a signed integer instead.
Signed-off-by: Søren Sandmann Pedersen <sandmann@redhat.com> --- mm/highmem.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/highmem.c b/mm/highmem.c index 25878cc..33587de 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -426,9 +426,9 @@ void __init page_address_init(void) void debug_kmap_atomic(enum km_type type) { - static unsigned warn_count = 10; + static int warn_count = 10; - if (unlikely(warn_count == 0)) + if (unlikely(warn_count < 0)) return; if (unlikely(in_interrupt())) { -- 1.6.5.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |