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 fixes from Andrew Morton:
"11 fixes"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
.mailmap: add Christophe Ricard
Make CONFIG_FHANDLE default y
mm/page_isolation.c: fix the function comments
oom, oom_reaper: do not enqueue task if it is on the oom_reaper_list head
mm/page_isolation: fix tracepoint to mirror check function behavior
mm/rmap: batched invalidations should use existing api
x86/mm: TLB_REMOTE_SEND_IPI should count pages
mm: fix invalid node in alloc_migrate_target()
include/linux/huge_mm.h: return NULL instead of false for pmd_trans_huge_lock()
mm, kasan: fix compilation for CONFIG_SLAB
MAINTAINERS: orangefs mailing list is subscribers-only

+34 -42
+1
.mailmap
··· 33 33 Brian Avery <b.avery@hp.com> 34 34 Brian King <brking@us.ibm.com> 35 35 Christoph Hellwig <hch@lst.de> 36 + Christophe Ricard <christophe.ricard@gmail.com> 36 37 Corey Minyard <minyard@acm.org> 37 38 Damian Hobson-Garcia <dhobsong@igel.co.jp> 38 39 David Brownell <david-b@pacbell.net>
+1 -1
MAINTAINERS
··· 8253 8253 8254 8254 ORANGEFS FILESYSTEM 8255 8255 M: Mike Marshall <hubcap@omnibond.com> 8256 - L: pvfs2-developers@beowulf-underground.org 8256 + L: pvfs2-developers@beowulf-underground.org (subscribers-only) 8257 8257 T: git git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux.git 8258 8258 S: Supported 8259 8259 F: fs/orangefs/
-6
arch/x86/include/asm/tlbflush.h
··· 319 319 320 320 #endif /* SMP */ 321 321 322 - /* Not inlined due to inc_irq_stat not being defined yet */ 323 - #define flush_tlb_local() { \ 324 - inc_irq_stat(irq_tlb_count); \ 325 - local_flush_tlb(); \ 326 - } 327 - 328 322 #ifndef CONFIG_PARAVIRT 329 323 #define flush_tlb_others(mask, mm, start, end) \ 330 324 native_flush_tlb_others(mask, mm, start, end)
+10 -4
arch/x86/mm/tlb.c
··· 104 104 105 105 inc_irq_stat(irq_tlb_count); 106 106 107 - if (f->flush_mm != this_cpu_read(cpu_tlbstate.active_mm)) 107 + if (f->flush_mm && f->flush_mm != this_cpu_read(cpu_tlbstate.active_mm)) 108 108 return; 109 - if (!f->flush_end) 110 - f->flush_end = f->flush_start + PAGE_SIZE; 111 109 112 110 count_vm_tlb_event(NR_TLB_REMOTE_FLUSH_RECEIVED); 113 111 if (this_cpu_read(cpu_tlbstate.state) == TLBSTATE_OK) { ··· 133 135 unsigned long end) 134 136 { 135 137 struct flush_tlb_info info; 138 + 139 + if (end == 0) 140 + end = start + PAGE_SIZE; 136 141 info.flush_mm = mm; 137 142 info.flush_start = start; 138 143 info.flush_end = end; 139 144 140 145 count_vm_tlb_event(NR_TLB_REMOTE_FLUSH); 141 - trace_tlb_flush(TLB_REMOTE_SEND_IPI, end - start); 146 + if (end == TLB_FLUSH_ALL) 147 + trace_tlb_flush(TLB_REMOTE_SEND_IPI, TLB_FLUSH_ALL); 148 + else 149 + trace_tlb_flush(TLB_REMOTE_SEND_IPI, 150 + (end - start) >> PAGE_SHIFT); 151 + 142 152 if (is_uv_system()) { 143 153 unsigned int cpu; 144 154
+1 -1
include/linux/huge_mm.h
··· 127 127 if (pmd_trans_huge(*pmd) || pmd_devmap(*pmd)) 128 128 return __pmd_trans_huge_lock(pmd, vma); 129 129 else 130 - return false; 130 + return NULL; 131 131 } 132 132 static inline int hpage_nr_pages(struct page *page) 133 133 {
+1 -1
include/trace/events/page_isolation.h
··· 29 29 30 30 TP_printk("start_pfn=0x%lx end_pfn=0x%lx fin_pfn=0x%lx ret=%s", 31 31 __entry->start_pfn, __entry->end_pfn, __entry->fin_pfn, 32 - __entry->end_pfn == __entry->fin_pfn ? "success" : "fail") 32 + __entry->end_pfn <= __entry->fin_pfn ? "success" : "fail") 33 33 ); 34 34 35 35 #endif /* _TRACE_PAGE_ISOLATION_H */
+2 -1
init/Kconfig
··· 272 272 See the man page for more details. 273 273 274 274 config FHANDLE 275 - bool "open by fhandle syscalls" 275 + bool "open by fhandle syscalls" if EXPERT 276 276 select EXPORTFS 277 + default y 277 278 help 278 279 If you say Y here, a user level program will be able to map 279 280 file names to handle and then later use the handle for
+1 -1
mm/kasan/kasan.c
··· 498 498 struct kasan_alloc_meta *alloc_info = 499 499 get_alloc_info(cache, object); 500 500 alloc_info->state = KASAN_STATE_FREE; 501 - set_track(&free_info->track); 501 + set_track(&free_info->track, GFP_NOWAIT); 502 502 } 503 503 #endif 504 504
+5 -1
mm/oom_kill.c
··· 547 547 548 548 static void wake_oom_reaper(struct task_struct *tsk) 549 549 { 550 - if (!oom_reaper_th || tsk->oom_reaper_list) 550 + if (!oom_reaper_th) 551 + return; 552 + 553 + /* tsk is already queued? */ 554 + if (tsk == oom_reaper_list || tsk->oom_reaper_list) 551 555 return; 552 556 553 557 get_task_struct(tsk);
+5 -5
mm/page_isolation.c
··· 215 215 * all pages in [start_pfn...end_pfn) must be in the same zone. 216 216 * zone->lock must be held before call this. 217 217 * 218 - * Returns 1 if all pages in the range are isolated. 218 + * Returns the last tested pfn. 219 219 */ 220 220 static unsigned long 221 221 __test_page_isolated_in_pageblock(unsigned long pfn, unsigned long end_pfn, ··· 289 289 * now as a simple work-around, we use the next node for destination. 290 290 */ 291 291 if (PageHuge(page)) { 292 - nodemask_t src = nodemask_of_node(page_to_nid(page)); 293 - nodemask_t dst; 294 - nodes_complement(dst, src); 292 + int node = next_online_node(page_to_nid(page)); 293 + if (node == MAX_NUMNODES) 294 + node = first_online_node; 295 295 return alloc_huge_page_node(page_hstate(compound_head(page)), 296 - next_node(page_to_nid(page), dst)); 296 + node); 297 297 } 298 298 299 299 if (PageHighMem(page))
+7 -21
mm/rmap.c
··· 569 569 } 570 570 571 571 #ifdef CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH 572 - static void percpu_flush_tlb_batch_pages(void *data) 573 - { 574 - /* 575 - * All TLB entries are flushed on the assumption that it is 576 - * cheaper to flush all TLBs and let them be refilled than 577 - * flushing individual PFNs. Note that we do not track mm's 578 - * to flush as that might simply be multiple full TLB flushes 579 - * for no gain. 580 - */ 581 - count_vm_tlb_event(NR_TLB_REMOTE_FLUSH_RECEIVED); 582 - flush_tlb_local(); 583 - } 584 - 585 572 /* 586 573 * Flush TLB entries for recently unmapped pages from remote CPUs. It is 587 574 * important if a PTE was dirty when it was unmapped that it's flushed ··· 585 598 586 599 cpu = get_cpu(); 587 600 588 - trace_tlb_flush(TLB_REMOTE_SHOOTDOWN, -1UL); 589 - 590 - if (cpumask_test_cpu(cpu, &tlb_ubc->cpumask)) 591 - percpu_flush_tlb_batch_pages(&tlb_ubc->cpumask); 592 - 593 - if (cpumask_any_but(&tlb_ubc->cpumask, cpu) < nr_cpu_ids) { 594 - smp_call_function_many(&tlb_ubc->cpumask, 595 - percpu_flush_tlb_batch_pages, (void *)tlb_ubc, true); 601 + if (cpumask_test_cpu(cpu, &tlb_ubc->cpumask)) { 602 + count_vm_tlb_event(NR_TLB_LOCAL_FLUSH_ALL); 603 + local_flush_tlb(); 604 + trace_tlb_flush(TLB_LOCAL_SHOOTDOWN, TLB_FLUSH_ALL); 596 605 } 606 + 607 + if (cpumask_any_but(&tlb_ubc->cpumask, cpu) < nr_cpu_ids) 608 + flush_tlb_others(&tlb_ubc->cpumask, NULL, 0, TLB_FLUSH_ALL); 597 609 cpumask_clear(&tlb_ubc->cpumask); 598 610 tlb_ubc->flush_required = false; 599 611 tlb_ubc->writable = false;