Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'mm-hotfixes-stable-2023-07-08-10-43' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Pull hotfixes from Andrew Morton:
"16 hotfixes. Six are cc:stable and the remainder address post-6.4
issues"

The merge undoes the disabling of the CONFIG_PER_VMA_LOCK feature, since
it was all hopefully fixed in mainline.

* tag 'mm-hotfixes-stable-2023-07-08-10-43' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
lib: dhry: fix sleeping allocations inside non-preemptable section
kasan, slub: fix HW_TAGS zeroing with slub_debug
kasan: fix type cast in memory_is_poisoned_n
mailmap: add entries for Heiko Stuebner
mailmap: update manpage link
bootmem: remove the vmemmap pages from kmemleak in free_bootmem_page
MAINTAINERS: add linux-next info
mailmap: add Markus Schneider-Pargmann
writeback: account the number of pages written back
mm: call arch_swap_restore() from do_swap_page()
squashfs: fix cache race with migration
mm/hugetlb.c: fix a bug within a BUG(): inconsistent pte comparison
docs: update ocfs2-devel mailing list address
MAINTAINERS: update ocfs2-devel mailing list address
mm: disable CONFIG_PER_VMA_LOCK until its fixed
fork: lock VMAs of the parent process when forking

+99 -44
+6 -1
.mailmap
··· 5 5 # same person appearing not to be so or badly displayed. Also allows for 6 6 # old email addresses to map to new email addresses. 7 7 # 8 - # For format details, see "MAPPING AUTHORS" in "man git-shortlog". 8 + # For format details, see "man gitmailmap" or "MAPPING AUTHORS" in 9 + # "man git-shortlog" on older systems. 9 10 # 10 11 # Please keep this list dictionary sorted. 11 12 # ··· 178 177 Hanjun Guo <guohanjun@huawei.com> <hanjun.guo@linaro.org> 179 178 Heiko Carstens <hca@linux.ibm.com> <h.carstens@de.ibm.com> 180 179 Heiko Carstens <hca@linux.ibm.com> <heiko.carstens@de.ibm.com> 180 + Heiko Stuebner <heiko@sntech.de> <heiko.stuebner@bqreaders.com> 181 + Heiko Stuebner <heiko@sntech.de> <heiko.stuebner@theobroma-systems.com> 182 + Heiko Stuebner <heiko@sntech.de> <heiko.stuebner@vrull.eu> 181 183 Henk Vergonet <Henk.Vergonet@gmail.com> 182 184 Henrik Kretzschmar <henne@nachtwindheim.de> 183 185 Henrik Rydberg <rydberg@bitmath.org> ··· 309 305 Marek Behún <kabel@kernel.org> Marek Behun <marek.behun@nic.cz> 310 306 Mark Brown <broonie@sirena.org.uk> 311 307 Mark Starovoytov <mstarovo@pm.me> <mstarovoitov@marvell.com> 308 + Markus Schneider-Pargmann <msp@baylibre.com> <mpa@pengutronix.de> 312 309 Mark Yao <markyao0591@gmail.com> <mark.yao@rock-chips.com> 313 310 Martin Kepplinger <martink@posteo.de> <martin.kepplinger@ginzinger.com> 314 311 Martin Kepplinger <martink@posteo.de> <martin.kepplinger@puri.sm>
+2 -2
Documentation/ABI/obsolete/o2cb
··· 1 1 What: /sys/o2cb 2 2 Date: Dec 2005 3 3 KernelVersion: 2.6.16 4 - Contact: ocfs2-devel@oss.oracle.com 4 + Contact: ocfs2-devel@lists.linux.dev 5 5 Description: Ocfs2-tools looks at 'interface-revision' for versioning 6 6 information. Each logmask/ file controls a set of debug prints 7 7 and can be written into with the strings "allow", "deny", or 8 8 "off". Reading the file returns the current state. 9 9 Was renamed to /sys/fs/u2cb/ 10 10 Users: ocfs2-tools. It's sufficient to mail proposed changes to 11 - ocfs2-devel@oss.oracle.com. 11 + ocfs2-devel@lists.linux.dev.
+2 -2
Documentation/ABI/removed/o2cb
··· 1 1 What: /sys/o2cb symlink 2 2 Date: May 2011 3 3 KernelVersion: 3.0 4 - Contact: ocfs2-devel@oss.oracle.com 4 + Contact: ocfs2-devel@lists.linux.dev 5 5 Description: This is a symlink: /sys/o2cb to /sys/fs/o2cb. The symlink is 6 6 removed when new versions of ocfs2-tools which know to look 7 7 in /sys/fs/o2cb are sufficiently prevalent. Don't code new 8 8 software to look here, it should try /sys/fs/o2cb instead. 9 9 Users: ocfs2-tools. It's sufficient to mail proposed changes to 10 - ocfs2-devel@oss.oracle.com. 10 + ocfs2-devel@lists.linux.dev.
+2 -2
Documentation/ABI/stable/o2cb
··· 1 1 What: /sys/fs/o2cb/ 2 2 Date: Dec 2005 3 3 KernelVersion: 2.6.16 4 - Contact: ocfs2-devel@oss.oracle.com 4 + Contact: ocfs2-devel@lists.linux.dev 5 5 Description: Ocfs2-tools looks at 'interface-revision' for versioning 6 6 information. Each logmask/ file controls a set of debug prints 7 7 and can be written into with the strings "allow", "deny", or 8 8 "off". Reading the file returns the current state. 9 9 Users: ocfs2-tools. It's sufficient to mail proposed changes to 10 - ocfs2-devel@oss.oracle.com. 10 + ocfs2-devel@lists.linux.dev.
+6 -6
Documentation/ABI/testing/sysfs-ocfs2
··· 1 1 What: /sys/fs/ocfs2/ 2 2 Date: April 2008 3 - Contact: ocfs2-devel@oss.oracle.com 3 + Contact: ocfs2-devel@lists.linux.dev 4 4 Description: 5 5 The /sys/fs/ocfs2 directory contains knobs used by the 6 6 ocfs2-tools to interact with the filesystem. 7 7 8 8 What: /sys/fs/ocfs2/max_locking_protocol 9 9 Date: April 2008 10 - Contact: ocfs2-devel@oss.oracle.com 10 + Contact: ocfs2-devel@lists.linux.dev 11 11 Description: 12 12 The /sys/fs/ocfs2/max_locking_protocol file displays version 13 13 of ocfs2 locking supported by the filesystem. This version ··· 28 28 29 29 What: /sys/fs/ocfs2/loaded_cluster_plugins 30 30 Date: April 2008 31 - Contact: ocfs2-devel@oss.oracle.com 31 + Contact: ocfs2-devel@lists.linux.dev 32 32 Description: 33 33 The /sys/fs/ocfs2/loaded_cluster_plugins file describes 34 34 the available plugins to support ocfs2 cluster operation. ··· 48 48 49 49 What: /sys/fs/ocfs2/active_cluster_plugin 50 50 Date: April 2008 51 - Contact: ocfs2-devel@oss.oracle.com 51 + Contact: ocfs2-devel@lists.linux.dev 52 52 Description: 53 53 The /sys/fs/ocfs2/active_cluster_plugin displays which 54 54 cluster plugin is currently in use by the filesystem. ··· 65 65 66 66 What: /sys/fs/ocfs2/cluster_stack 67 67 Date: April 2008 68 - Contact: ocfs2-devel@oss.oracle.com 68 + Contact: ocfs2-devel@lists.linux.dev 69 69 Description: 70 70 The /sys/fs/ocfs2/cluster_stack file contains the name 71 71 of current ocfs2 cluster stack. This value is set by ··· 86 86 stack return an error. 87 87 88 88 Users: 89 - ocfs2-tools <ocfs2-tools-devel@oss.oracle.com> 89 + ocfs2-tools <ocfs2-tools-devel@lists.linux.dev>
+1 -1
Documentation/filesystems/dlmfs.rst
··· 12 12 13 13 :Project web page: http://ocfs2.wiki.kernel.org 14 14 :Tools web page: https://github.com/markfasheh/ocfs2-tools 15 - :OCFS2 mailing lists: https://oss.oracle.com/projects/ocfs2/mailman/ 15 + :OCFS2 mailing lists: https://subspace.kernel.org/lists.linux.dev.html 16 16 17 17 All code copyright 2005 Oracle except when otherwise noted. 18 18
+1 -1
Documentation/filesystems/ocfs2.rst
··· 14 14 15 15 Project web page: http://ocfs2.wiki.kernel.org 16 16 Tools git tree: https://github.com/markfasheh/ocfs2-tools 17 - OCFS2 mailing lists: https://oss.oracle.com/projects/ocfs2/mailman/ 17 + OCFS2 mailing lists: https://subspace.kernel.org/lists.linux.dev.html 18 18 19 19 All code copyright 2005 Oracle except when otherwise noted. 20 20
+8 -1
MAINTAINERS
··· 12069 12069 F: Documentation/memory-barriers.txt 12070 12070 F: tools/memory-model/ 12071 12071 12072 + LINUX-NEXT TREE 12073 + M: Stephen Rothwell <sfr@canb.auug.org.au> 12074 + L: linux-next@vger.kernel.org 12075 + S: Supported 12076 + B: mailto:linux-next@vger.kernel.org and the appropriate development tree 12077 + T: git git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/ 12078 + 12072 12079 LIS3LV02D ACCELEROMETER DRIVER 12073 12080 M: Eric Piel <eric.piel@tremplin-utc.net> 12074 12081 S: Maintained ··· 15901 15894 M: Mark Fasheh <mark@fasheh.com> 15902 15895 M: Joel Becker <jlbec@evilplan.org> 15903 15896 M: Joseph Qi <joseph.qi@linux.alibaba.com> 15904 - L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers) 15897 + L: ocfs2-devel@lists.linux.dev 15905 15898 S: Supported 15906 15899 W: http://ocfs2.wiki.kernel.org 15907 15900 F: Documentation/filesystems/dlmfs.rst
+3 -3
fs/ocfs2/Kconfig
··· 17 17 You'll want to install the ocfs2-tools package in order to at least 18 18 get "mount.ocfs2". 19 19 20 - Project web page: https://oss.oracle.com/projects/ocfs2 21 - Tools web page: https://oss.oracle.com/projects/ocfs2-tools 22 - OCFS2 mailing lists: https://oss.oracle.com/projects/ocfs2/mailman/ 20 + Project web page: https://ocfs2.wiki.kernel.org/ 21 + Tools web page: https://github.com/markfasheh/ocfs2-tools 22 + OCFS2 mailing lists: https://subspace.kernel.org/lists.linux.dev.html 23 23 24 24 For more information on OCFS2, see the file 25 25 <file:Documentation/filesystems/ocfs2.rst>.
+23 -4
fs/squashfs/block.c
··· 166 166 return 0; 167 167 } 168 168 169 + static struct page *squashfs_get_cache_page(struct address_space *mapping, 170 + pgoff_t index) 171 + { 172 + struct page *page; 173 + 174 + if (!mapping) 175 + return NULL; 176 + 177 + page = find_get_page(mapping, index); 178 + if (!page) 179 + return NULL; 180 + 181 + if (!PageUptodate(page)) { 182 + put_page(page); 183 + return NULL; 184 + } 185 + 186 + return page; 187 + } 188 + 169 189 static int squashfs_bio_read(struct super_block *sb, u64 index, int length, 170 190 struct bio **biop, int *block_offset) 171 191 { ··· 210 190 for (i = 0; i < page_count; ++i) { 211 191 unsigned int len = 212 192 min_t(unsigned int, PAGE_SIZE - offset, total_len); 213 - struct page *page = NULL; 193 + pgoff_t index = (read_start >> PAGE_SHIFT) + i; 194 + struct page *page; 214 195 215 - if (cache_mapping) 216 - page = find_get_page(cache_mapping, 217 - (read_start >> PAGE_SHIFT) + i); 196 + page = squashfs_get_cache_page(cache_mapping, index); 218 197 if (!page) 219 198 page = alloc_page(GFP_NOIO); 220 199
+2
include/linux/bootmem_info.h
··· 3 3 #define __LINUX_BOOTMEM_INFO_H 4 4 5 5 #include <linux/mm.h> 6 + #include <linux/kmemleak.h> 6 7 7 8 /* 8 9 * Types for free bootmem stored in page->lru.next. These have to be in ··· 60 59 61 60 static inline void free_bootmem_page(struct page *page) 62 61 { 62 + kmemleak_free_part(page_to_virt(page), PAGE_SIZE); 63 63 free_reserved_page(page); 64 64 } 65 65 #endif
+9 -2
lib/dhry_1.c
··· 139 139 140 140 /* Initializations */ 141 141 142 - Next_Ptr_Glob = (Rec_Pointer)kzalloc(sizeof(Rec_Type), GFP_KERNEL); 143 - Ptr_Glob = (Rec_Pointer)kzalloc(sizeof(Rec_Type), GFP_KERNEL); 142 + Next_Ptr_Glob = (Rec_Pointer)kzalloc(sizeof(Rec_Type), GFP_ATOMIC); 143 + if (!Next_Ptr_Glob) 144 + return -ENOMEM; 145 + 146 + Ptr_Glob = (Rec_Pointer)kzalloc(sizeof(Rec_Type), GFP_ATOMIC); 147 + if (!Ptr_Glob) { 148 + kfree(Next_Ptr_Glob); 149 + return -ENOMEM; 150 + } 144 151 145 152 Ptr_Glob->Ptr_Comp = Next_Ptr_Glob; 146 153 Ptr_Glob->Discr = Ident_1;
+6 -1
mm/hugetlb.c
··· 7246 7246 pte = (pte_t *)pmd_alloc(mm, pud, addr); 7247 7247 } 7248 7248 } 7249 - BUG_ON(pte && pte_present(ptep_get(pte)) && !pte_huge(ptep_get(pte))); 7249 + 7250 + if (pte) { 7251 + pte_t pteval = ptep_get_lockless(pte); 7252 + 7253 + BUG_ON(pte_present(pteval) && !pte_huge(pteval)); 7254 + } 7250 7255 7251 7256 return pte; 7252 7257 }
+2 -1
mm/kasan/generic.c
··· 130 130 if (unlikely(ret)) { 131 131 const void *last_byte = addr + size - 1; 132 132 s8 *last_shadow = (s8 *)kasan_mem_to_shadow(last_byte); 133 + s8 last_accessible_byte = (unsigned long)last_byte & KASAN_GRANULE_MASK; 133 134 134 135 if (unlikely(ret != (unsigned long)last_shadow || 135 - (((long)last_byte & KASAN_GRANULE_MASK) >= *last_shadow))) 136 + last_accessible_byte >= *last_shadow)) 136 137 return true; 137 138 } 138 139 return false;
-12
mm/kasan/kasan.h
··· 466 466 467 467 if (WARN_ON((unsigned long)addr & KASAN_GRANULE_MASK)) 468 468 return; 469 - /* 470 - * Explicitly initialize the memory with the precise object size to 471 - * avoid overwriting the slab redzone. This disables initialization in 472 - * the arch code and may thus lead to performance penalty. This penalty 473 - * does not affect production builds, as slab redzones are not enabled 474 - * there. 475 - */ 476 - if (__slub_debug_enabled() && 477 - init && ((unsigned long)size & KASAN_GRANULE_MASK)) { 478 - init = false; 479 - memzero_explicit((void *)addr, size); 480 - } 481 469 size = round_up(size, KASAN_GRANULE_SIZE); 482 470 483 471 hw_set_mem_tag_range((void *)addr, size, tag, init);
+7
mm/memory.c
··· 3951 3951 } 3952 3952 3953 3953 /* 3954 + * Some architectures may have to restore extra metadata to the page 3955 + * when reading from swap. This metadata may be indexed by swap entry 3956 + * so this must be called before swap_free(). 3957 + */ 3958 + arch_swap_restore(entry, folio); 3959 + 3960 + /* 3954 3961 * Remove the swap entry and conditionally try to free up the swapcache. 3955 3962 * We're already holding a reference on the page but haven't mapped it 3956 3963 * yet.
+5 -3
mm/page-writeback.c
··· 2434 2434 2435 2435 for (i = 0; i < nr_folios; i++) { 2436 2436 struct folio *folio = fbatch.folios[i]; 2437 + unsigned long nr; 2437 2438 2438 2439 done_index = folio->index; 2439 2440 ··· 2472 2471 2473 2472 trace_wbc_writepage(wbc, inode_to_bdi(mapping->host)); 2474 2473 error = writepage(folio, wbc, data); 2474 + nr = folio_nr_pages(folio); 2475 2475 if (unlikely(error)) { 2476 2476 /* 2477 2477 * Handle errors according to the type of ··· 2491 2489 error = 0; 2492 2490 } else if (wbc->sync_mode != WB_SYNC_ALL) { 2493 2491 ret = error; 2494 - done_index = folio->index + 2495 - folio_nr_pages(folio); 2492 + done_index = folio->index + nr; 2496 2493 done = 1; 2497 2494 break; 2498 2495 } ··· 2505 2504 * keep going until we have written all the pages 2506 2505 * we tagged for writeback prior to entering this loop. 2507 2506 */ 2508 - if (--wbc->nr_to_write <= 0 && 2507 + wbc->nr_to_write -= nr; 2508 + if (wbc->nr_to_write <= 0 && 2509 2509 wbc->sync_mode == WB_SYNC_NONE) { 2510 2510 done = 1; 2511 2511 break;
+14 -2
mm/slab.h
··· 723 723 unsigned int orig_size) 724 724 { 725 725 unsigned int zero_size = s->object_size; 726 + bool kasan_init = init; 726 727 size_t i; 727 728 728 729 flags &= gfp_allowed_mask; ··· 741 740 zero_size = orig_size; 742 741 743 742 /* 743 + * When slub_debug is enabled, avoid memory initialization integrated 744 + * into KASAN and instead zero out the memory via the memset below with 745 + * the proper size. Otherwise, KASAN might overwrite SLUB redzones and 746 + * cause false-positive reports. This does not lead to a performance 747 + * penalty on production builds, as slub_debug is not intended to be 748 + * enabled there. 749 + */ 750 + if (__slub_debug_enabled()) 751 + kasan_init = false; 752 + 753 + /* 744 754 * As memory initialization might be integrated into KASAN, 745 755 * kasan_slab_alloc and initialization memset must be 746 756 * kept together to avoid discrepancies in behavior. ··· 759 747 * As p[i] might get tagged, memset and kmemleak hook come after KASAN. 760 748 */ 761 749 for (i = 0; i < size; i++) { 762 - p[i] = kasan_slab_alloc(s, p[i], flags, init); 763 - if (p[i] && init && !kasan_has_integrated_init()) 750 + p[i] = kasan_slab_alloc(s, p[i], flags, kasan_init); 751 + if (p[i] && init && (!kasan_init || !kasan_has_integrated_init())) 764 752 memset(p[i], 0, zero_size); 765 753 kmemleak_alloc_recursive(p[i], s->object_size, 1, 766 754 s->flags, flags);