On Wed, May 04, 2016 at 08:17:55PM +0100, Russell King - ARM Linux wrote: > On Wed, May 04, 2016 at 03:47:29PM +0200, Peter Zijlstra wrote: > > Traditionally kmap_atomic() disables preemption; and the reason is that > > the returned pointer must stay valid. This had a side effect in that it > > also disabled pagefaults. > > A lowmem page should never change its page_address(), so that much is > safe. Agreed.. > I think the question is whether there is any driver code which > assumes that preemption is unconditionally disabled between a > kmap_atomic() has been called. right, this and consistency. Having the function disable preemption sometimes is just plain weird. > That wouldn't be an unreasonable assumption given the name of the > function, so I'd suggest caution with making kmap_atomic() have these > kinds of differing behaviours depending on whether we're asking to > kmap a high or lowmem page. So for -rt I did a preemptible kmap_atomic() for x86 (and maybe someone did other archs too, I cannot remember), now -rt is funny wrt locking anyway, but I cannot remember anything breaking because of this, so there is some hope it will actually work. > If we are going to allow this, I think it at least needs to be well > documented. Indeed. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html