[PATCH] mm: BUG when __kmap_atomic_idx crosses boundary

Subsystems: memory management - core, the rest

STALE4453d

5 messages, 3 authors, 2014-07-31 · open the first message on its own page

[PATCH] mm: BUG when __kmap_atomic_idx crosses boundary

From: Chintan Pandya <hidden>
Date: 2014-07-30 08:52:52

__kmap_atomic_idx >= KM_TYPE_NR or < ZERO is a bug.
Report it even if CONFIG_DEBUG_HIGHMEM is not enabled.
That saves much debugging efforts.

Signed-off-by: Chintan Pandya <redacted>
---
 include/linux/highmem.h | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 7fb31da..f42cafd 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -93,8 +93,8 @@ 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);
 #endif
+	BUG_ON(idx >= KM_TYPE_NR);
 	return idx;
 }
 
@@ -105,13 +105,9 @@ static inline int kmap_atomic_idx(void)
 
 static inline void kmap_atomic_idx_pop(void)
 {
-#ifdef CONFIG_DEBUG_HIGHMEM
 	int idx = __this_cpu_dec_return(__kmap_atomic_idx);
 
 	BUG_ON(idx < 0);
-#else
-	__this_cpu_dec(__kmap_atomic_idx);
-#endif
 }
 
 #endif
-- 
Chintan Pandya

QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member of the Code Aurora Forum, hosted by The Linux Foundation

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

Re: [PATCH] mm: BUG when __kmap_atomic_idx crosses boundary

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2014-07-30 09:03:56

On Wed, 30 Jul 2014 14:22:35 +0530 Chintan Pandya [off-list ref] wrote:
__kmap_atomic_idx >= KM_TYPE_NR or < ZERO is a bug.
Report it even if CONFIG_DEBUG_HIGHMEM is not enabled.
That saves much debugging efforts.
Please take considerably more care when preparing patch changelogs.

kmap_atomic() is a very commonly called function so we'll need much
more detail than this to justify adding overhead to it.

I don't think CONFIG_DEBUG_HIGHMEM really needs to exist.  We could do
s/CONFIG_DEBUG_HIGHMEM/CONFIG_DEBUG_VM/g and perhaps your secret bug
whatever it was would have been found more easily.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

Re: [PATCH] mm: BUG when __kmap_atomic_idx crosses boundary

From: Davidlohr Bueso <hidden>
Date: 2014-07-30 10:37:24

On Wed, 2014-07-30 at 02:06 -0700, Andrew Morton wrote:
On Wed, 30 Jul 2014 14:22:35 +0530 Chintan Pandya [off-list ref] wrote:
quoted
__kmap_atomic_idx >= KM_TYPE_NR or < ZERO is a bug.
Report it even if CONFIG_DEBUG_HIGHMEM is not enabled.
That saves much debugging efforts.
Please take considerably more care when preparing patch changelogs.

kmap_atomic() is a very commonly called function so we'll need much
more detail than this to justify adding overhead to it.

I don't think CONFIG_DEBUG_HIGHMEM really needs to exist.  We could do
s/CONFIG_DEBUG_HIGHMEM/CONFIG_DEBUG_VM/g and perhaps your secret bug
whatever it was would have been found more easily.
Agreed, it would be nice to fold DEBUG_HIGHMEM into DEBUG_VM. However
you'd still need some kind of intermediate option as DEBUG_VM must still
exist if !HIGHMEM.

Thanks,
Davidlohr


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

Re: [PATCH] mm: BUG when __kmap_atomic_idx crosses boundary

From: Davidlohr Bueso <hidden>
Date: 2014-07-30 10:52:55

On Wed, 2014-07-30 at 03:37 -0700, Davidlohr Bueso wrote:
On Wed, 2014-07-30 at 02:06 -0700, Andrew Morton wrote:
quoted
On Wed, 30 Jul 2014 14:22:35 +0530 Chintan Pandya [off-list ref] wrote:
quoted
__kmap_atomic_idx >= KM_TYPE_NR or < ZERO is a bug.
Report it even if CONFIG_DEBUG_HIGHMEM is not enabled.
That saves much debugging efforts.
Please take considerably more care when preparing patch changelogs.

kmap_atomic() is a very commonly called function so we'll need much
more detail than this to justify adding overhead to it.

I don't think CONFIG_DEBUG_HIGHMEM really needs to exist.  We could do
s/CONFIG_DEBUG_HIGHMEM/CONFIG_DEBUG_VM/g and perhaps your secret bug
whatever it was would have been found more easily.
Agreed, it would be nice to fold DEBUG_HIGHMEM into DEBUG_VM. However
you'd still need some kind of intermediate option as DEBUG_VM must still
exist if !HIGHMEM.
Actually no, it's a lot more straightforward than I thought.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

Re: [PATCH] mm: BUG when __kmap_atomic_idx crosses boundary

From: Chintan Pandya <hidden>
Date: 2014-07-31 05:36:35

On 07/30/2014 02:36 PM, Andrew Morton wrote:
On Wed, 30 Jul 2014 14:22:35 +0530 Chintan Pandya[off-list ref]  wrote:
quoted
__kmap_atomic_idx>= KM_TYPE_NR or<  ZERO is a bug.
Report it even if CONFIG_DEBUG_HIGHMEM is not enabled.
That saves much debugging efforts.
Please take considerably more care when preparing patch changelogs.
Okay. I will prepare new commit message.
kmap_atomic() is a very commonly called function so we'll need much
more detail than this to justify adding overhead to it.

I don't think CONFIG_DEBUG_HIGHMEM really needs to exist.  We could do
s/CONFIG_DEBUG_HIGHMEM/CONFIG_DEBUG_VM/g and perhaps your secret bug
whatever it was would have been found more easily.
Um, we didn't get bug directly hitting here.
__kmap_atomic_idx should not be equal to KM_TYPE_NR anyway. So, at least I will share that patch. For changing DEBUG_HIGHMEM to DEBUG_VM, I will work on it.

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member of the Code Aurora Forum, hosted by The Linux Foundation

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help