perf/smmuv3: Don't trample existing events with global filter
authorRobin Murphy <robin.murphy@arm.com>
Tue, 8 Jun 2021 11:55:12 +0000 (12:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jul 2021 14:55:42 +0000 (16:55 +0200)
commit7510c5cd0dc44152c3e5c5105a8c34556640ea72
treed7007f2ed407db06e45f54e7e395926d4cc6dfbc
parent9109e15709cd6813411c004a2a1d128c0cb6701d
perf/smmuv3: Don't trample existing events with global filter

commit 4c1daba15c209b99d192f147fea3dade30f72ed2 upstream.

With global filtering, we only allow an event to be scheduled if its
filter settings exactly match those of any existing events, therefore
it is pointless to reapply the filter in that case. Much worse, though,
is that in doing that we trample the event type of counter 0 if it's
already active, and never touch the appropriate PMEVTYPERn so the new
event is likely not counting the right thing either. Don't do that.

CC: stable@vger.kernel.org
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/32c80c0e46237f49ad8da0c9f8864e13c4a803aa.1623153312.git.robin.murphy@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/perf/arm_smmuv3_pmu.c