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@xxxxxxxxx> --- 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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>