• J
    [PATCH] update to the kernel kmap/kunmap API · a6ca1b99
    James Bottomley 提交于
    Give non-highmem architectures access to the kmap API for the purposes of
    overriding (this is what the attached patch does).
    
    The proposal is that we should now require all architectures with coherence
    issues to manage data coherence via the kmap/kunmap API.  Thus driver
    writers never have to write code like
    
        kmap(page)
        modify data in page
        flush_kernel_dcache_page(page)
        kunmap(page)
    
    instead, kmap/kunmap will manage the coherence and driver (and filesystem)
    writers don't need to worry about how to flush between kmap and kunmap.
    
    For most architectures, the page only needs to be flushed if it was
    actually written to *and* there are user mappings of it, so the best
    implementation looks to be: clear the page dirty pte bit in the kernel page
    tables on kmap and on kunmap, check page->mappings for user maps, and then
    the dirty bit, and only flush if it both has user mappings and is dirty.
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    a6ca1b99
highmem.h 2.8 KB