The patch titled Subject: Documentation/vm: remove "Using kmap-atomic" from highmem.rst. has been added to the -mm tree. Its filename is documentation-vm-remove-using-kmap-atomic-from-highmemrst.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/documentation-vm-remove-using-kmap-atomic-from-highmemrst.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/documentation-vm-remove-using-kmap-atomic-from-highmemrst.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: "Fabio M. De Francesco" <fmdefrancesco@xxxxxxxxx> Subject: Documentation/vm: remove "Using kmap-atomic" from highmem.rst. The use of kmap_atomic() is deprecated in favor of kmap_local_page(). For this reason the "Using kmap_atomic" section in highmem.rst is obsolete and unnecessary. Therefore, just remove it. Link: https://lkml.kernel.org/r/20220421180200.16901-4-fmdefrancesco@xxxxxxxxx Signed-off-by: Fabio M. De Francesco <fmdefrancesco@xxxxxxxxx> Cc: Jonathan Corbet <corbet@xxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Ira Weiny <ira.weiny@xxxxxxxxx> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Cc: Mike Rapoport <rppt@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- Documentation/vm/highmem.rst | 35 --------------------------------- 1 file changed, 35 deletions(-) --- a/Documentation/vm/highmem.rst~documentation-vm-remove-using-kmap-atomic-from-highmemrst +++ a/Documentation/vm/highmem.rst @@ -72,41 +72,6 @@ The kernel contains several ways of crea It may be assumed that k[un]map_atomic() won't fail. -Using kmap_atomic -================= - -When and where to use kmap_atomic() is straightforward. It is used when code -wants to access the contents of a page that might be allocated from high memory -(see __GFP_HIGHMEM), for example a page in the pagecache. The API has two -functions, and they can be used in a manner similar to the following:: - - /* Find the page of interest. */ - struct page *page = find_get_page(mapping, offset); - - /* Gain access to the contents of that page. */ - void *vaddr = kmap_atomic(page); - - /* Do something to the contents of that page. */ - memset(vaddr, 0, PAGE_SIZE); - - /* Unmap that page. */ - kunmap_atomic(vaddr); - -Note that the kunmap_atomic() call takes the result of the kmap_atomic() call -not the argument. - -If you need to map two pages because you want to copy from one page to -another you need to keep the kmap_atomic calls strictly nested, like:: - - vaddr1 = kmap_atomic(page1); - vaddr2 = kmap_atomic(page2); - - memcpy(vaddr1, vaddr2, PAGE_SIZE); - - kunmap_atomic(vaddr2); - kunmap_atomic(vaddr1); - - Cost of Temporary Mappings ========================== _ Patches currently in -mm which might be from fmdefrancesco@xxxxxxxxx are mm-highmem-fix-kernel-doc-warnings-in-highmemh.patch documentation-vm-include-kdocs-from-highmemh-into-highmemrst.patch documentation-vm-remove-using-kmap-atomic-from-highmemrst.patch documentation-vm-rework-temporary-virtual-mappings.patch