| From d72d04d8cb1f8edf207febff3df5bbc4a1ffb185 Mon Sep 17 00:00:00 2001 |
| From: Anju T Sudhakar <anju@linux.vnet.ibm.com> |
| Date: Tue, 27 Nov 2018 13:54:52 +0530 |
| Subject: powerpc/perf: Return accordingly on invalid chip-id in |
| |
| [ Upstream commit a913e5e8b43be1d3897a141ce61c1ec071cad89c ] |
| |
| Nest hardware counter memory resides in a per-chip reserve-memory. |
| During nest_imc_event_init(), chip-id of the event-cpu is considered to |
| calculate the base memory addresss for that cpu. Return, proper error |
| condition if the chip_id calculated is invalid. |
| |
| Reported-by: Dan Carpenter <dan.carpenter@oracle.com> |
| Fixes: 885dcd709ba91 ("powerpc/perf: Add nest IMC PMU support") |
| Reviewed-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com> |
| Signed-off-by: Anju T Sudhakar <anju@linux.vnet.ibm.com> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/powerpc/perf/imc-pmu.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| diff --git a/arch/powerpc/perf/imc-pmu.c b/arch/powerpc/perf/imc-pmu.c |
| index b1c37cc3fa98b..6159e9edddfd0 100644 |
| --- a/arch/powerpc/perf/imc-pmu.c |
| +++ b/arch/powerpc/perf/imc-pmu.c |
| @@ -487,6 +487,11 @@ static int nest_imc_event_init(struct perf_event *event) |
| * Get the base memory addresss for this cpu. |
| */ |
| chip_id = cpu_to_chip_id(event->cpu); |
| + |
| + /* Return, if chip_id is not valid */ |
| + if (chip_id < 0) |
| + return -ENODEV; |
| + |
| pcni = pmu->mem_info; |
| do { |
| if (pcni->id == chip_id) { |
| -- |
| 2.20.1 |
| |