On Fri, Oct 31, 2014 at 06:05:22PM +0800, Herbert Xu wrote: > On Fri, Oct 31, 2014 at 10:57:06AM +0100, Maxime Ripard wrote: > > > > On a 3.18-rc2 kernel: > > > > $ git grep kmap -- crypto/ > > crypto/ahash.c: walk->data = kmap(walk->pg); > > crypto/ahash.c: walk->data = kmap_atomic(walk->pg); > > crypto/async_tx/async_memcpy.c: dest_buf = kmap_atomic(dest) + dest_offset; > > crypto/async_tx/async_memcpy.c: src_buf = kmap_atomic(src) + src_offset; > > crypto/scatterwalk.c: return kmap_atomic(scatterwalk_page(walk)) + > > crypto/shash.c: data = kmap_atomic(sg_page(sg)); > > crypto/shash.c: data = kmap_atomic(sg_page(sg)); > > > > None of the drivers are. > > What do you mean? It's precisely because the page can be in highmem > that we are mapping it. If it's not in highmem it'll be a noop. What I mean is that since you are saying that drivers should do the kmap themselves, then *all* of the drivers are broken if they are not using it. And all of them are missing this kmap. Maxime -- Maxime Ripard, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Attachment:
signature.asc
Description: Digital signature