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:
"10 patches.

Subsystems affected by this patch series: MAINTAINERS and mm (slub,
pagealloc, memcg, kasan, vmalloc, migration, hugetlb, memory-failure,
and process_vm_access)"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
mm/process_vm_access.c: include compat.h
mm,hwpoison: fix printing of page flags
MAINTAINERS: add Vlastimil as slab allocators maintainer
mm/hugetlb: fix potential missing huge page size info
mm: migrate: initialize err in do_migrate_pages
mm/vmalloc.c: fix potential memory leak
arm/kasan: fix the array size of kasan_early_shadow_pte[]
mm/memcontrol: fix warning in mem_cgroup_page_lruvec()
mm/page_alloc: add a missing mm_page_alloc_zone_locked() tracepoint
mm, slub: consider rest of partial list if acquire_slab() fails

+33 -23
+1
MAINTAINERS
··· 16313 16313 M: David Rientjes <rientjes@google.com> 16314 16314 M: Joonsoo Kim <iamjoonsoo.kim@lge.com> 16315 16315 M: Andrew Morton <akpm@linux-foundation.org> 16316 + M: Vlastimil Babka <vbabka@suse.cz> 16316 16317 L: linux-mm@kvack.org 16317 16318 S: Maintained 16318 16319 F: include/linux/sl?b*.h
+5 -1
include/linux/kasan.h
··· 35 35 #define KASAN_SHADOW_INIT 0 36 36 #endif 37 37 38 + #ifndef PTE_HWTABLE_PTRS 39 + #define PTE_HWTABLE_PTRS 0 40 + #endif 41 + 38 42 extern unsigned char kasan_early_shadow_page[PAGE_SIZE]; 39 - extern pte_t kasan_early_shadow_pte[PTRS_PER_PTE]; 43 + extern pte_t kasan_early_shadow_pte[PTRS_PER_PTE + PTE_HWTABLE_PTRS]; 40 44 extern pmd_t kasan_early_shadow_pmd[PTRS_PER_PMD]; 41 45 extern pud_t kasan_early_shadow_pud[PTRS_PER_PUD]; 42 46 extern p4d_t kasan_early_shadow_p4d[MAX_PTRS_PER_P4D];
+1 -1
include/linux/memcontrol.h
··· 665 665 { 666 666 struct mem_cgroup *memcg = page_memcg(page); 667 667 668 - VM_WARN_ON_ONCE_PAGE(!memcg, page); 668 + VM_WARN_ON_ONCE_PAGE(!memcg && !mem_cgroup_disabled(), page); 669 669 return mem_cgroup_lruvec(memcg, pgdat); 670 670 } 671 671
+1 -1
mm/hugetlb.c
··· 4371 4371 * So we need to block hugepage fault by PG_hwpoison bit check. 4372 4372 */ 4373 4373 if (unlikely(PageHWPoison(page))) { 4374 - ret = VM_FAULT_HWPOISON | 4374 + ret = VM_FAULT_HWPOISON_LARGE | 4375 4375 VM_FAULT_SET_HINDEX(hstate_index(h)); 4376 4376 goto backout_unlocked; 4377 4377 }
+2 -1
mm/kasan/init.c
··· 64 64 return false; 65 65 } 66 66 #endif 67 - pte_t kasan_early_shadow_pte[PTRS_PER_PTE] __page_aligned_bss; 67 + pte_t kasan_early_shadow_pte[PTRS_PER_PTE + PTE_HWTABLE_PTRS] 68 + __page_aligned_bss; 68 69 69 70 static inline bool kasan_pte_table(pmd_t pmd) 70 71 {
+1 -1
mm/memory-failure.c
··· 1940 1940 goto retry; 1941 1941 } 1942 1942 } else if (ret == -EIO) { 1943 - pr_info("%s: %#lx: unknown page type: %lx (%pGP)\n", 1943 + pr_info("%s: %#lx: unknown page type: %lx (%pGp)\n", 1944 1944 __func__, pfn, page->flags, &page->flags); 1945 1945 } 1946 1946
+1 -1
mm/mempolicy.c
··· 1111 1111 const nodemask_t *to, int flags) 1112 1112 { 1113 1113 int busy = 0; 1114 - int err; 1114 + int err = 0; 1115 1115 nodemask_t tmp; 1116 1116 1117 1117 migrate_prep();
+16 -15
mm/page_alloc.c
··· 2862 2862 { 2863 2863 struct page *page; 2864 2864 2865 - #ifdef CONFIG_CMA 2866 - /* 2867 - * Balance movable allocations between regular and CMA areas by 2868 - * allocating from CMA when over half of the zone's free memory 2869 - * is in the CMA area. 2870 - */ 2871 - if (alloc_flags & ALLOC_CMA && 2872 - zone_page_state(zone, NR_FREE_CMA_PAGES) > 2873 - zone_page_state(zone, NR_FREE_PAGES) / 2) { 2874 - page = __rmqueue_cma_fallback(zone, order); 2875 - if (page) 2876 - return page; 2865 + if (IS_ENABLED(CONFIG_CMA)) { 2866 + /* 2867 + * Balance movable allocations between regular and CMA areas by 2868 + * allocating from CMA when over half of the zone's free memory 2869 + * is in the CMA area. 2870 + */ 2871 + if (alloc_flags & ALLOC_CMA && 2872 + zone_page_state(zone, NR_FREE_CMA_PAGES) > 2873 + zone_page_state(zone, NR_FREE_PAGES) / 2) { 2874 + page = __rmqueue_cma_fallback(zone, order); 2875 + if (page) 2876 + goto out; 2877 + } 2877 2878 } 2878 - #endif 2879 2879 retry: 2880 2880 page = __rmqueue_smallest(zone, order, migratetype); 2881 2881 if (unlikely(!page)) { ··· 2886 2886 alloc_flags)) 2887 2887 goto retry; 2888 2888 } 2889 - 2890 - trace_mm_page_alloc_zone_locked(page, order, migratetype); 2889 + out: 2890 + if (page) 2891 + trace_mm_page_alloc_zone_locked(page, order, migratetype); 2891 2892 return page; 2892 2893 } 2893 2894
+1
mm/process_vm_access.c
··· 9 9 #include <linux/mm.h> 10 10 #include <linux/uio.h> 11 11 #include <linux/sched.h> 12 + #include <linux/compat.h> 12 13 #include <linux/sched/mm.h> 13 14 #include <linux/highmem.h> 14 15 #include <linux/ptrace.h>
+1 -1
mm/slub.c
··· 1973 1973 1974 1974 t = acquire_slab(s, n, page, object == NULL, &objects); 1975 1975 if (!t) 1976 - break; 1976 + continue; /* cmpxchg raced */ 1977 1977 1978 1978 available += objects; 1979 1979 if (!object) {
+3 -1
mm/vmalloc.c
··· 2420 2420 return NULL; 2421 2421 } 2422 2422 2423 - if (flags & VM_MAP_PUT_PAGES) 2423 + if (flags & VM_MAP_PUT_PAGES) { 2424 2424 area->pages = pages; 2425 + area->nr_pages = count; 2426 + } 2425 2427 return area->addr; 2426 2428 } 2427 2429 EXPORT_SYMBOL(vmap);