Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b44eeb4d authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf fixes from Ingo Molnar:
 "Misc smaller fixes"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf/x86: Fix leak in uncore_type_init failure paths
  perf machine: Use map as success in ip__resolve_ams
  perf symbols: Fix crash in elf_section_by_name
  perf trace: Decode architecture-specific signal numbers
parents 4f87dac3 b7b4839d
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -3334,6 +3334,8 @@ static int __init uncore_type_init(struct intel_uncore_type *type)
	if (!pmus)
	if (!pmus)
		return -ENOMEM;
		return -ENOMEM;


	type->pmus = pmus;

	type->unconstrainted = (struct event_constraint)
	type->unconstrainted = (struct event_constraint)
		__EVENT_CONSTRAINT(0, (1ULL << type->num_counters) - 1,
		__EVENT_CONSTRAINT(0, (1ULL << type->num_counters) - 1,
				0, type->num_counters, 0, 0);
				0, type->num_counters, 0, 0);
@@ -3369,7 +3371,6 @@ static int __init uncore_type_init(struct intel_uncore_type *type)
	}
	}


	type->pmu_group = &uncore_pmu_attr_group;
	type->pmu_group = &uncore_pmu_attr_group;
	type->pmus = pmus;
	return 0;
	return 0;
fail:
fail:
	uncore_type_exit(type);
	uncore_type_exit(type);
+9 −1
Original line number Original line Diff line number Diff line
@@ -825,7 +825,6 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal
	P_SIGNUM(PIPE);
	P_SIGNUM(PIPE);
	P_SIGNUM(ALRM);
	P_SIGNUM(ALRM);
	P_SIGNUM(TERM);
	P_SIGNUM(TERM);
	P_SIGNUM(STKFLT);
	P_SIGNUM(CHLD);
	P_SIGNUM(CHLD);
	P_SIGNUM(CONT);
	P_SIGNUM(CONT);
	P_SIGNUM(STOP);
	P_SIGNUM(STOP);
@@ -841,6 +840,15 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal
	P_SIGNUM(IO);
	P_SIGNUM(IO);
	P_SIGNUM(PWR);
	P_SIGNUM(PWR);
	P_SIGNUM(SYS);
	P_SIGNUM(SYS);
#ifdef SIGEMT
	P_SIGNUM(EMT);
#endif
#ifdef SIGSTKFLT
	P_SIGNUM(STKFLT);
#endif
#ifdef SIGSWI
	P_SIGNUM(SWI);
#endif
	default: break;
	default: break;
	}
	}


+1 −1
Original line number Original line Diff line number Diff line
@@ -1213,7 +1213,7 @@ static void ip__resolve_ams(struct machine *machine, struct thread *thread,
		 */
		 */
		thread__find_addr_location(thread, machine, m, MAP__FUNCTION,
		thread__find_addr_location(thread, machine, m, MAP__FUNCTION,
				ip, &al);
				ip, &al);
		if (al.sym)
		if (al.map)
			goto found;
			goto found;
	}
	}
found:
found:
+3 −3
Original line number Original line Diff line number Diff line
@@ -151,15 +151,15 @@ Elf_Scn *elf_section_by_name(Elf *elf, GElf_Ehdr *ep,


		gelf_getshdr(sec, shp);
		gelf_getshdr(sec, shp);
		str = elf_strptr(elf, ep->e_shstrndx, shp->sh_name);
		str = elf_strptr(elf, ep->e_shstrndx, shp->sh_name);
		if (!strcmp(name, str)) {
		if (str && !strcmp(name, str)) {
			if (idx)
			if (idx)
				*idx = cnt;
				*idx = cnt;
			break;
			return sec;
		}
		}
		++cnt;
		++cnt;
	}
	}


	return sec;
	return NULL;
}
}


#define elf_section__for_each_rel(reldata, pos, pos_mem, idx, nr_entries) \
#define elf_section__for_each_rel(reldata, pos, pos_mem, idx, nr_entries) \