Messages in this thread Patch in this message | | | Date | Tue, 30 Nov 2010 13:26:39 -0600 (CST) | From | Christoph Lameter <> | Subject | Re: [thisops uV3 07/18] highmem: Use this_cpu_xx_return() operations |
| |
On Tue, 30 Nov 2010, Eric Dumazet wrote:
> > { > > - int idx = --__get_cpu_var(__kmap_atomic_idx); > > + int idx = __this_cpu_dec_return(__kmap_atomic_idx); > > __this_cpu_dec_return() is only needed if CONFIG_DEBUG_HIGHMEM > > > #ifdef CONFIG_DEBUG_HIGHMEM > > BUG_ON(idx < 0); > > #endif > > > > You could change kmap_atomic_idx_pop() to return void, and use > __this_cpu_dec(__kmap_atomic_idx)
The following would do?
Subject: highmem: Use this_cpu_dec instead of __this_cpu_dec_return if !DEBUG_HIGHMEM
Signed-off-by: Christoph Lameter <cl@linux.com>
--- include/linux/highmem.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
Index: linux-2.6/include/linux/highmem.h =================================================================== --- linux-2.6.orig/include/linux/highmem.h 2010-11-30 13:23:44.000000000 -0600 +++ linux-2.6/include/linux/highmem.h 2010-11-30 13:24:54.000000000 -0600 @@ -95,14 +95,19 @@ static inline int kmap_atomic_idx(void) return __this_cpu_read(__kmap_atomic_idx) - 1; }
+#ifdef CONFIG_DEBUG_HIGHMEM static inline int kmap_atomic_idx_pop(void) { int idx = __this_cpu_dec_return(__kmap_atomic_idx); -#ifdef CONFIG_DEBUG_HIGHMEM BUG_ON(idx < 0); -#endif return idx; } +#else +static inline void kmap_atomic_idx_pop(void) +{ + __this_cpu_dec(__kmap_atomic_idx); +} +#endif
#endif
| |