mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
perf: arm_spe: Prevent overflow in PERF_IDX2OFF()
[ Upstream commita29fea30dd] Cast nr_pages to unsigned long to avoid overflow when handling large AUX buffer sizes (>= 2 GiB). Fixes:d5d9696b03("drivers/perf: Add support for ARMv8.2 Statistical Profiling Extension") Signed-off-by: Leo Yan <leo.yan@arm.com> Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
637f28a25b
commit
e516cfd19b
@@ -97,7 +97,8 @@ struct arm_spe_pmu {
|
|||||||
#define to_spe_pmu(p) (container_of(p, struct arm_spe_pmu, pmu))
|
#define to_spe_pmu(p) (container_of(p, struct arm_spe_pmu, pmu))
|
||||||
|
|
||||||
/* Convert a free-running index from perf into an SPE buffer offset */
|
/* Convert a free-running index from perf into an SPE buffer offset */
|
||||||
#define PERF_IDX2OFF(idx, buf) ((idx) % ((buf)->nr_pages << PAGE_SHIFT))
|
#define PERF_IDX2OFF(idx, buf) \
|
||||||
|
((idx) % ((unsigned long)(buf)->nr_pages << PAGE_SHIFT))
|
||||||
|
|
||||||
/* Keep track of our dynamic hotplug state */
|
/* Keep track of our dynamic hotplug state */
|
||||||
static enum cpuhp_state arm_spe_pmu_online;
|
static enum cpuhp_state arm_spe_pmu_online;
|
||||||
|
|||||||
Reference in New Issue
Block a user