]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tomoyo: Use local kmap in tomoyo_dump_page()
authorDavidlohr Bueso <dave@stgolabs.net>
Fri, 28 Nov 2025 22:27:47 +0000 (14:27 -0800)
committerTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Mon, 1 Dec 2025 14:05:26 +0000 (23:05 +0900)
Replace the now deprecated kmap_atomic() with kmap_local_page().

The memcpy does not need atomic semantics, and the removed comment
is now stale - this patch now makes it in sync again. Last but not
least, highmem is going to be removed[0].

Link: https://lore.kernel.org/all/4ff89b72-03ff-4447-9d21-dd6a5fe1550f@app.fastmail.com/
Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
security/tomoyo/domain.c

index 5f9ccab26e9abb66a2d8ff19c4b66cc6aa9db903..90cf0e2969df8ef6a1cd40df1fe57a113fbc67e0 100644 (file)
@@ -934,17 +934,12 @@ bool tomoyo_dump_page(struct linux_binprm *bprm, unsigned long pos,
 #endif
        if (page != dump->page) {
                const unsigned int offset = pos % PAGE_SIZE;
-               /*
-                * Maybe kmap()/kunmap() should be used here.
-                * But remove_arg_zero() uses kmap_atomic()/kunmap_atomic().
-                * So do I.
-                */
-               char *kaddr = kmap_atomic(page);
+               char *kaddr = kmap_local_page(page);
 
                dump->page = page;
                memcpy(dump->data + offset, kaddr + offset,
                       PAGE_SIZE - offset);
-               kunmap_atomic(kaddr);
+               kunmap_local(kaddr);
        }
        /* Same with put_arg_page(page) in fs/exec.c */
 #ifdef CONFIG_MMU