Skip to content

Commit 50ee4a6

Browse files
committed
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes from Catalin Marinas: - Deselect ARCH_CORRECT_STACKTRACE_ON_KRETPROBE so that tests depending on it don't run (and fail) on arm64 - Fix lockdep assert in the Arm SMMUv3 PMU driver - Fix the port and device ID bits setting in the Arm CMN perf driver * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: perf/arm-cmn: Ensure port and device id bits are set properly perf/arm-smmuv3: Fix lockdep assert in ->event_init() arm64: disable ARCH_CORRECT_STACKTRACE_ON_KRETPROBE tests
2 parents 6a34dfa + dfdf714 commit 50ee4a6

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

arch/arm64/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ config ARM64
1414
select ARCH_HAS_DEBUG_WX
1515
select ARCH_BINFMT_ELF_EXTRA_PHDRS
1616
select ARCH_BINFMT_ELF_STATE
17-
select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
1817
select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION
1918
select ARCH_ENABLE_MEMORY_HOTPLUG
2019
select ARCH_ENABLE_MEMORY_HOTREMOVE

drivers/perf/arm-cmn.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2178,8 +2178,6 @@ static int arm_cmn_init_dtcs(struct arm_cmn *cmn)
21782178
continue;
21792179

21802180
xp = arm_cmn_node_to_xp(cmn, dn);
2181-
dn->portid_bits = xp->portid_bits;
2182-
dn->deviceid_bits = xp->deviceid_bits;
21832181
dn->dtc = xp->dtc;
21842182
dn->dtm = xp->dtm;
21852183
if (cmn->multi_dtm)
@@ -2420,6 +2418,8 @@ static int arm_cmn_discover(struct arm_cmn *cmn, unsigned int rgn_offset)
24202418
}
24212419

24222420
arm_cmn_init_node_info(cmn, reg & CMN_CHILD_NODE_ADDR, dn);
2421+
dn->portid_bits = xp->portid_bits;
2422+
dn->deviceid_bits = xp->deviceid_bits;
24232423

24242424
switch (dn->type) {
24252425
case CMN_TYPE_DTC:

drivers/perf/arm_smmuv3_pmu.c

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,17 @@ static int smmu_pmu_event_init(struct perf_event *event)
431431
return -EINVAL;
432432
}
433433

434+
/*
435+
* Ensure all events are on the same cpu so all events are in the
436+
* same cpu context, to avoid races on pmu_enable etc.
437+
*/
438+
event->cpu = smmu_pmu->on_cpu;
439+
440+
hwc->idx = -1;
441+
442+
if (event->group_leader == event)
443+
return 0;
444+
434445
for_each_sibling_event(sibling, event->group_leader) {
435446
if (is_software_event(sibling))
436447
continue;
@@ -442,14 +453,6 @@ static int smmu_pmu_event_init(struct perf_event *event)
442453
return -EINVAL;
443454
}
444455

445-
hwc->idx = -1;
446-
447-
/*
448-
* Ensure all events are on the same cpu so all events are in the
449-
* same cpu context, to avoid races on pmu_enable etc.
450-
*/
451-
event->cpu = smmu_pmu->on_cpu;
452-
453456
return 0;
454457
}
455458

0 commit comments

Comments
 (0)