diff mbox series

target/riscv: fix invalid riscv,event-to-mhpmcounters entry

Message ID 20230404173333.35179-1-conor@kernel.org
State New
Headers show
Series target/riscv: fix invalid riscv,event-to-mhpmcounters entry | expand

Commit Message

Conor Dooley April 4, 2023, 5:33 p.m. UTC
From: Conor Dooley <conor.dooley@microchip.com>

dt-validate complains:
> soc: pmu: {'riscv,event-to-mhpmcounters':
> [[1, 1, 524281], [2, 2, 524284], [65561, 65561, 524280],
> [65563, 65563, 524280], [65569, 65569, 524280], [0, 0, 0], [0, 0]],
> pmu: riscv,event-to-mhpmcounters:6: [0, 0] is too short

There are bogus 0 entries added at the end, of which one is of
insufficient length. This happens because only 15 of
fdt_event_ctr_map[]'s 20 elements are populated & qemu_fdt_setprop() is
called using the size of the array.
Reduce the array to 15 elements to make the error go away.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
I dunno if I am missing something intentional here, feel free to scream
if so!
---
 target/riscv/pmu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Alistair Francis April 5, 2023, 3:42 a.m. UTC | #1
On Wed, Apr 5, 2023 at 3:35 AM Conor Dooley <conor@kernel.org> wrote:
>
> From: Conor Dooley <conor.dooley@microchip.com>
>
> dt-validate complains:
> > soc: pmu: {'riscv,event-to-mhpmcounters':
> > [[1, 1, 524281], [2, 2, 524284], [65561, 65561, 524280],
> > [65563, 65563, 524280], [65569, 65569, 524280], [0, 0, 0], [0, 0]],
> > pmu: riscv,event-to-mhpmcounters:6: [0, 0] is too short
>
> There are bogus 0 entries added at the end, of which one is of
> insufficient length. This happens because only 15 of
> fdt_event_ctr_map[]'s 20 elements are populated & qemu_fdt_setprop() is
> called using the size of the array.
> Reduce the array to 15 elements to make the error go away.
>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
> I dunno if I am missing something intentional here, feel free to scream
> if so!
> ---
>  target/riscv/pmu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target/riscv/pmu.c b/target/riscv/pmu.c
> index b8e56d2b7b..fa1e1484c2 100644
> --- a/target/riscv/pmu.c
> +++ b/target/riscv/pmu.c
> @@ -35,7 +35,7 @@
>   */
>  void riscv_pmu_generate_fdt_node(void *fdt, int num_ctrs, char *pmu_name)
>  {
> -    uint32_t fdt_event_ctr_map[20] = {};
> +    uint32_t fdt_event_ctr_map[15] = {};
>      uint32_t cmask;
>
>      /* All the programmable counters can map to any event */
> --
> 2.39.2
>
>
Alistair Francis April 5, 2023, 3:56 a.m. UTC | #2
On Wed, Apr 5, 2023 at 3:35 AM Conor Dooley <conor@kernel.org> wrote:
>
> From: Conor Dooley <conor.dooley@microchip.com>
>
> dt-validate complains:
> > soc: pmu: {'riscv,event-to-mhpmcounters':
> > [[1, 1, 524281], [2, 2, 524284], [65561, 65561, 524280],
> > [65563, 65563, 524280], [65569, 65569, 524280], [0, 0, 0], [0, 0]],
> > pmu: riscv,event-to-mhpmcounters:6: [0, 0] is too short
>
> There are bogus 0 entries added at the end, of which one is of
> insufficient length. This happens because only 15 of
> fdt_event_ctr_map[]'s 20 elements are populated & qemu_fdt_setprop() is
> called using the size of the array.
> Reduce the array to 15 elements to make the error go away.
>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

Thanks!

Applied to riscv-to-apply.next

Alistair

> ---
> I dunno if I am missing something intentional here, feel free to scream
> if so!
> ---
>  target/riscv/pmu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target/riscv/pmu.c b/target/riscv/pmu.c
> index b8e56d2b7b..fa1e1484c2 100644
> --- a/target/riscv/pmu.c
> +++ b/target/riscv/pmu.c
> @@ -35,7 +35,7 @@
>   */
>  void riscv_pmu_generate_fdt_node(void *fdt, int num_ctrs, char *pmu_name)
>  {
> -    uint32_t fdt_event_ctr_map[20] = {};
> +    uint32_t fdt_event_ctr_map[15] = {};
>      uint32_t cmask;
>
>      /* All the programmable counters can map to any event */
> --
> 2.39.2
>
>
diff mbox series

Patch

diff --git a/target/riscv/pmu.c b/target/riscv/pmu.c
index b8e56d2b7b..fa1e1484c2 100644
--- a/target/riscv/pmu.c
+++ b/target/riscv/pmu.c
@@ -35,7 +35,7 @@ 
  */
 void riscv_pmu_generate_fdt_node(void *fdt, int num_ctrs, char *pmu_name)
 {
-    uint32_t fdt_event_ctr_map[20] = {};
+    uint32_t fdt_event_ctr_map[15] = {};
     uint32_t cmask;
 
     /* All the programmable counters can map to any event */