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 branches 'core-urgent-for-linus', 'perf-urgent-for-linus' and 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pulling latest branches from Ingo:

* 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
memblock: Fix size aligning of memblock_alloc_base_nid()

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf probe: Ensure offset provided is not greater than function length without DWARF info too
perf tools: Ensure comm string is properly terminated
perf probe: Ensure offset provided is not greater than function length
perf evlist: Return first evsel for non-sample event on old kernel
perf/hwbp: Fix a possible memory leak

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
CPU hotplug, cpusets, suspend: Don't touch cpusets during suspend/resume

+29 -8
+2 -2
kernel/events/hw_breakpoint.c
··· 651 651 652 652 err_alloc: 653 653 for_each_possible_cpu(err_cpu) { 654 - if (err_cpu == cpu) 655 - break; 656 654 for (i = 0; i < TYPE_MAX; i++) 657 655 kfree(per_cpu(nr_task_bp_pinned[i], cpu)); 656 + if (err_cpu == cpu) 657 + break; 658 658 } 659 659 660 660 return -ENOMEM;
+2 -2
kernel/sched/core.c
··· 6728 6728 static int cpuset_cpu_active(struct notifier_block *nfb, unsigned long action, 6729 6729 void *hcpu) 6730 6730 { 6731 - switch (action & ~CPU_TASKS_FROZEN) { 6731 + switch (action) { 6732 6732 case CPU_ONLINE: 6733 6733 case CPU_DOWN_FAILED: 6734 6734 cpuset_update_active_cpus(); ··· 6741 6741 static int cpuset_cpu_inactive(struct notifier_block *nfb, unsigned long action, 6742 6742 void *hcpu) 6743 6743 { 6744 - switch (action & ~CPU_TASKS_FROZEN) { 6744 + switch (action) { 6745 6745 case CPU_DOWN_PREPARE: 6746 6746 cpuset_update_active_cpus(); 6747 6747 return NOTIFY_OK;
+3 -3
mm/memblock.c
··· 99 99 phys_addr_t this_start, this_end, cand; 100 100 u64 i; 101 101 102 - /* align @size to avoid excessive fragmentation on reserved array */ 103 - size = round_up(size, align); 104 - 105 102 /* pump up @end */ 106 103 if (end == MEMBLOCK_ALLOC_ACCESSIBLE) 107 104 end = memblock.current_limit; ··· 727 730 int nid) 728 731 { 729 732 phys_addr_t found; 733 + 734 + /* align @size to avoid excessive fragmentation on reserved array */ 735 + size = round_up(size, align); 730 736 731 737 found = memblock_find_in_range_node(0, max_addr, size, align, nid); 732 738 if (found && !memblock_reserve(found, size))
+1
tools/perf/util/event.c
··· 74 74 if (size >= len) 75 75 size = len - 1; 76 76 memcpy(comm, name, size); 77 + comm[size] = '\0'; 77 78 78 79 } else if (memcmp(bf, "Tgid:", 5) == 0) { 79 80 char *tgids = bf + 5;
+4
tools/perf/util/evlist.c
··· 349 349 hlist_for_each_entry(sid, pos, head, node) 350 350 if (sid->id == id) 351 351 return sid->evsel; 352 + 353 + if (!perf_evlist__sample_id_all(evlist)) 354 + return list_entry(evlist->entries.next, struct perf_evsel, node); 355 + 352 356 return NULL; 353 357 } 354 358
+6
tools/perf/util/probe-event.c
··· 1867 1867 tev->point.symbol); 1868 1868 ret = -ENOENT; 1869 1869 goto error; 1870 + } else if (tev->point.offset > sym->end - sym->start) { 1871 + pr_warning("Offset specified is greater than size of %s\n", 1872 + tev->point.symbol); 1873 + ret = -ENOENT; 1874 + goto error; 1875 + 1870 1876 } 1871 1877 1872 1878 return 1;
+11 -1
tools/perf/util/probe-finder.c
··· 672 672 static int convert_to_trace_point(Dwarf_Die *sp_die, Dwarf_Addr paddr, 673 673 bool retprobe, struct probe_trace_point *tp) 674 674 { 675 - Dwarf_Addr eaddr; 675 + Dwarf_Addr eaddr, highaddr; 676 676 const char *name; 677 677 678 678 /* Copy the name of probe point */ ··· 682 682 pr_warning("Failed to get entry address of %s\n", 683 683 dwarf_diename(sp_die)); 684 684 return -ENOENT; 685 + } 686 + if (dwarf_highpc(sp_die, &highaddr) != 0) { 687 + pr_warning("Failed to get end address of %s\n", 688 + dwarf_diename(sp_die)); 689 + return -ENOENT; 690 + } 691 + if (paddr > highaddr) { 692 + pr_warning("Offset specified is greater than size of %s\n", 693 + dwarf_diename(sp_die)); 694 + return -EINVAL; 685 695 } 686 696 tp->symbol = strdup(name); 687 697 if (tp->symbol == NULL)