From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail190.messagelabs.com (mail190.messagelabs.com [216.82.249.51]) by kanga.kvack.org (Postfix) with SMTP id 3E3F56B0089 for ; Tue, 30 Nov 2010 14:26:44 -0500 (EST) 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 In-Reply-To: <1291144408.2904.232.camel@edumazet-laptop> Message-ID: References: <20101130190707.457099608@linux.com> <20101130190845.216537525@linux.com> <1291144408.2904.232.camel@edumazet-laptop> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-linux-mm@kvack.org To: Eric Dumazet Cc: akpm@linux-foundation.org, Pekka Enberg , Peter Zijlstra , Catalin Marinas , linux-kernel@vger.kernel.org, Mathieu Desnoyers , Tejun Heo , linux-mm@kvack.org List-ID: 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 --- 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@kvack.org. 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: email@kvack.org