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 branch 'akpm' (patches from Andrew)

Merge misc fixes from Andrew Morton:
"9 patches.

Subsystems affected by this patch series: mm (kfence, mempolicy,
memory-failure, pagemap, pagealloc, damon, and memory-failure),
core-kernel, and MAINTAINERS"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page()
mm/damon/dbgfs: protect targets destructions with kdamond_lock
mm/page_alloc: fix __alloc_size attribute for alloc_pages_exact_nid
mm: delete unsafe BUG from page_cache_add_speculative()
mm, hwpoison: fix condition in free hugetlb page path
MAINTAINERS: mark more list instances as moderated
kernel/crash_core: suppress unknown crashkernel parameter warning
mm: mempolicy: fix THP allocations escaping mempolicy restrictions
kfence: fix memory leak when cat kfence objects

+23 -15
+2 -2
MAINTAINERS
··· 14845 14845 M: Ryder Lee <ryder.lee@mediatek.com> 14846 14846 M: Jianjun Wang <jianjun.wang@mediatek.com> 14847 14847 L: linux-pci@vger.kernel.org 14848 - L: linux-mediatek@lists.infradead.org 14848 + L: linux-mediatek@lists.infradead.org (moderated for non-subscribers) 14849 14849 S: Supported 14850 14850 F: Documentation/devicetree/bindings/pci/mediatek* 14851 14851 F: drivers/pci/controller/*mediatek* ··· 17423 17423 SILVACO I3C DUAL-ROLE MASTER 17424 17424 M: Miquel Raynal <miquel.raynal@bootlin.com> 17425 17425 M: Conor Culhane <conor.culhane@silvaco.com> 17426 - L: linux-i3c@lists.infradead.org 17426 + L: linux-i3c@lists.infradead.org (moderated for non-subscribers) 17427 17427 S: Maintained 17428 17428 F: Documentation/devicetree/bindings/i3c/silvaco,i3c-master.yaml 17429 17429 F: drivers/i3c/master/svc-i3c-master.c
+1 -1
include/linux/gfp.h
··· 624 624 625 625 void *alloc_pages_exact(size_t size, gfp_t gfp_mask) __alloc_size(1); 626 626 void free_pages_exact(void *virt, size_t size); 627 - __meminit void *alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask) __alloc_size(1); 627 + __meminit void *alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask) __alloc_size(2); 628 628 629 629 #define __get_free_page(gfp_mask) \ 630 630 __get_free_pages((gfp_mask), 0)
-1
include/linux/pagemap.h
··· 285 285 286 286 static inline bool page_cache_add_speculative(struct page *page, int count) 287 287 { 288 - VM_BUG_ON_PAGE(PageTail(page), page); 289 288 return folio_ref_try_add_rcu((struct folio *)page, count); 290 289 } 291 290
+11
kernel/crash_core.c
··· 6 6 7 7 #include <linux/buildid.h> 8 8 #include <linux/crash_core.h> 9 + #include <linux/init.h> 9 10 #include <linux/utsname.h> 10 11 #include <linux/vmalloc.h> 11 12 ··· 295 294 return __parse_crashkernel(cmdline, system_ram, crash_size, crash_base, 296 295 "crashkernel=", suffix_tbl[SUFFIX_LOW]); 297 296 } 297 + 298 + /* 299 + * Add a dummy early_param handler to mark crashkernel= as a known command line 300 + * parameter and suppress incorrect warnings in init/main.c. 301 + */ 302 + static int __init parse_crashkernel_dummy(char *arg) 303 + { 304 + return 0; 305 + } 306 + early_param("crashkernel", parse_crashkernel_dummy); 298 307 299 308 Elf_Word *append_elf_note(Elf_Word *buf, char *name, unsigned int type, 300 309 void *data, size_t data_len)
+2
mm/damon/dbgfs.c
··· 650 650 if (!targetid_is_pid(ctx)) 651 651 return; 652 652 653 + mutex_lock(&ctx->kdamond_lock); 653 654 damon_for_each_target_safe(t, next, ctx) { 654 655 put_pid((struct pid *)t->id); 655 656 damon_destroy_target(t); 656 657 } 658 + mutex_unlock(&ctx->kdamond_lock); 657 659 } 658 660 659 661 static struct damon_ctx *dbgfs_new_ctx(void)
+1
mm/kfence/core.c
··· 683 683 .open = open_objects, 684 684 .read = seq_read, 685 685 .llseek = seq_lseek, 686 + .release = seq_release, 686 687 }; 687 688 688 689 static int __init kfence_debugfs_init(void)
+5 -9
mm/memory-failure.c
··· 1470 1470 if (!(flags & MF_COUNT_INCREASED)) { 1471 1471 res = get_hwpoison_page(p, flags); 1472 1472 if (!res) { 1473 - /* 1474 - * Check "filter hit" and "race with other subpage." 1475 - */ 1476 1473 lock_page(head); 1477 - if (PageHWPoison(head)) { 1478 - if ((hwpoison_filter(p) && TestClearPageHWPoison(p)) 1479 - || (p != head && TestSetPageHWPoison(head))) { 1474 + if (hwpoison_filter(p)) { 1475 + if (TestClearPageHWPoison(head)) 1480 1476 num_poisoned_pages_dec(); 1481 - unlock_page(head); 1482 - return 0; 1483 - } 1477 + unlock_page(head); 1478 + return 0; 1484 1479 } 1485 1480 unlock_page(head); 1486 1481 res = MF_FAILED; ··· 2234 2239 } else if (ret == 0) { 2235 2240 if (soft_offline_free_page(page) && try_again) { 2236 2241 try_again = false; 2242 + flags &= ~MF_COUNT_INCREASED; 2237 2243 goto retry; 2238 2244 } 2239 2245 }
+1 -2
mm/mempolicy.c
··· 2140 2140 * memory with both reclaim and compact as well. 2141 2141 */ 2142 2142 if (!page && (gfp & __GFP_DIRECT_RECLAIM)) 2143 - page = __alloc_pages_node(hpage_node, 2144 - gfp, order); 2143 + page = __alloc_pages(gfp, order, hpage_node, nmask); 2145 2144 2146 2145 goto out; 2147 2146 }