On Fri, 19 Nov 2010, Eric Dumazet wrote: > > This isnt a use case for this_cpu_dec right? Seems that your message was > > cut off? > I wanted to show you the file were it was possible to use this_cpu_{dec| > inc}_return() > > My patch on kmap_atomic_idx() doesnt need your new functions ;) Oh ok you mean this: --- include/linux/highmem.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) Index: linux-2.6/include/linux/highmem.h =================================================================== --- linux-2.6.orig/include/linux/highmem.h 2010-11-19 09:55:24.000000000 -0600 +++ linux-2.6/include/linux/highmem.h 2010-11-19 09:57:54.000000000 -0600 @@ -81,7 +81,9 @@ DECLARE_PER_CPU(int, __kmap_atomic_idx); static inline int kmap_atomic_idx_push(void) { - int idx = __get_cpu_var(__kmap_atomic_idx)++; + int idx = __this_cpu_read(__kmap_atomic_idx); + + __this_cpu_inc(__kmap_atomic_idx); #ifdef CONFIG_DEBUG_HIGHMEM WARN_ON_ONCE(in_irq() && !irqs_disabled()); BUG_ON(idx > KM_TYPE_NR); @@ -91,12 +93,12 @@ static inline int kmap_atomic_idx_push(v static inline int kmap_atomic_idx(void) { - return __get_cpu_var(__kmap_atomic_idx) - 1; + return __this_cpu_read(__kmap_atomic_idx) - 1; } static inline int kmap_atomic_idx_pop(void) { - int idx = --__get_cpu_var(__kmap_atomic_idx); + int idx = __this_cpu_dec_return(__kmap_atomic_idx); #ifdef CONFIG_DEBUG_HIGHMEM BUG_ON(idx < 0); #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>