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

Conor Dooley posted 1 patch 1 year, 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230404173333.35179-1-conor@kernel.org
Maintainers: Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Bin Meng <bin.meng@windriver.com>, Weiwei Li <liweiwei@iscas.ac.cn>, Daniel Henrique Barboza <dbarboza@ventanamicro.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>
target/riscv/pmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] target/riscv: fix invalid riscv,event-to-mhpmcounters entry
Posted by Conor Dooley 1 year, 1 month ago
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(-)

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
Re: [PATCH] target/riscv: fix invalid riscv, event-to-mhpmcounters entry
Posted by Alistair Francis 1 year, 1 month ago
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
>
>
Re: [PATCH] target/riscv: fix invalid riscv, event-to-mhpmcounters entry
Posted by Alistair Francis 1 year, 1 month ago
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
>
>