diff options
| author | Hugh Dickins <[email protected]> | 2024-10-27 22:23:23 +0000 |
|---|---|---|
| committer | Christian Brauner <[email protected]> | 2024-10-28 12:39:35 +0000 |
| commit | c749d9b7ebbc5716af7a95f7768634b30d9446ec (patch) | |
| tree | 21dfcaa2e437f49e3b26f5faaf10ccadac91e888 /Documentation/filesystems/caching/cachefiles.rst | |
| parent | autofs: fix thinko in validate_dev_ioctl() (diff) | |
| download | kernel-c749d9b7ebbc5716af7a95f7768634b30d9446ec.tar.gz kernel-c749d9b7ebbc5716af7a95f7768634b30d9446ec.zip | |
iov_iter: fix copy_page_from_iter_atomic() if KMAP_LOCAL_FORCE_MAP
generic/077 on x86_32 CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP=y with highmem,
on huge=always tmpfs, issues a warning and then hangs (interruptibly):
WARNING: CPU: 5 PID: 3517 at mm/highmem.c:622 kunmap_local_indexed+0x62/0xc9
CPU: 5 UID: 0 PID: 3517 Comm: cp Not tainted 6.12.0-rc4 #2
...
copy_page_from_iter_atomic+0xa6/0x5ec
generic_perform_write+0xf6/0x1b4
shmem_file_write_iter+0x54/0x67
Fix copy_page_from_iter_atomic() by limiting it in that case
(include/linux/skbuff.h skb_frag_must_loop() does similar).
But going forward, perhaps CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is too
surprising, has outlived its usefulness, and should just be removed?
Fixes: 908a1ad89466 ("iov_iter: Handle compound highmem pages in copy_page_from_iter_atomic()")
Signed-off-by: Hugh Dickins <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: Christoph Hellwig <[email protected]>
Cc: [email protected]
Signed-off-by: Christian Brauner <[email protected]>
Diffstat (limited to 'Documentation/filesystems/caching/cachefiles.rst')
0 files changed, 0 insertions, 0 deletions
