Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+13 -11
-1
arch/arm64/Kconfig
··· 14 14 select ARCH_HAS_DEBUG_WX 15 15 select ARCH_BINFMT_ELF_EXTRA_PHDRS 16 16 select ARCH_BINFMT_ELF_STATE 17 - select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE 18 17 select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION 19 18 select ARCH_ENABLE_MEMORY_HOTPLUG 20 19 select ARCH_ENABLE_MEMORY_HOTREMOVE
+2 -2
drivers/perf/arm-cmn.c
··· 2178 2178 continue; 2179 2179 2180 2180 xp = arm_cmn_node_to_xp(cmn, dn); 2181 - dn->portid_bits = xp->portid_bits; 2182 - dn->deviceid_bits = xp->deviceid_bits; 2183 2181 dn->dtc = xp->dtc; 2184 2182 dn->dtm = xp->dtm; 2185 2183 if (cmn->multi_dtm) ··· 2418 2420 } 2419 2421 2420 2422 arm_cmn_init_node_info(cmn, reg & CMN_CHILD_NODE_ADDR, dn); 2423 + dn->portid_bits = xp->portid_bits; 2424 + dn->deviceid_bits = xp->deviceid_bits; 2421 2425 2422 2426 switch (dn->type) { 2423 2427 case CMN_TYPE_DTC:
+11 -8
drivers/perf/arm_smmuv3_pmu.c
··· 431 431 return -EINVAL; 432 432 } 433 433 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 + 434 445 for_each_sibling_event(sibling, event->group_leader) { 435 446 if (is_software_event(sibling)) 436 447 continue; ··· 452 441 if (++group_num_events > smmu_pmu->num_counters) 453 442 return -EINVAL; 454 443 } 455 - 456 - hwc->idx = -1; 457 - 458 - /* 459 - * Ensure all events are on the same cpu so all events are in the 460 - * same cpu context, to avoid races on pmu_enable etc. 461 - */ 462 - event->cpu = smmu_pmu->on_cpu; 463 444 464 445 return 0; 465 446 }