On Thu, 19 Aug 2010 22:13:19 +0200 Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote: > Keep the current interface but ignore the KM_type and use a stack > based approach. > > Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> > --- > +DECLARE_PER_CPU(int, __kmap_atomic_idx); > + > +static inline int kmap_atomic_idx_push(void) > +{ > + int idx = __get_cpu_var(__kmap_atomic_idx)++; > +#ifdef CONFIG_DEBUG_HIGHMEM > + BUG_ON(idx > KM_TYPE_NR); > +#endif > + return idx; > +} > + > +static inline int kmap_atomic_idx_pop(void) > +{ > + int idx = --__get_cpu_var(__kmap_atomic_idx); > +#ifdef CONFIG_DEBUG_HIGHMEM > + BUG_ON(idx < 0); > +#endif > + return idx; > +} > + > #else /* CONFIG_HIGHMEM */ > I may don't understand anything... Is irq already disabled ? And Is it documented that kmap_atomic shouln't be used under NMI or something special interrupts ? Thanks, -Kame -- 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/ . Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>