qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] hw/intc/riscv_aplic: Zero init APLIC internal state
@ 2023-04-13 13:34 Ivan Klokov
  2023-04-13 16:02 ` Anup Patel
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Ivan Klokov @ 2023-04-13 13:34 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-riscv, richard.henderson, anup, anup.patel, palmer,
	alistair.francis, Ivan Klokov

Since g_new is used to initialize the RISCVAPLICState->state structure,
in some case we get behavior that is not as expected. This patch
changes this to g_new0, which allows to initialize the APLIC in the correct state.

Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>
---
 hw/intc/riscv_aplic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c
index cfd007e629..71591d44bf 100644
--- a/hw/intc/riscv_aplic.c
+++ b/hw/intc/riscv_aplic.c
@@ -803,7 +803,7 @@ static void riscv_aplic_realize(DeviceState *dev, Error **errp)
 
     aplic->bitfield_words = (aplic->num_irqs + 31) >> 5;
     aplic->sourcecfg = g_new0(uint32_t, aplic->num_irqs);
-    aplic->state = g_new(uint32_t, aplic->num_irqs);
+    aplic->state = g_new0(uint32_t, aplic->num_irqs);
     aplic->target = g_new0(uint32_t, aplic->num_irqs);
     if (!aplic->msimode) {
         for (i = 0; i < aplic->num_irqs; i++) {
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] hw/intc/riscv_aplic: Zero init APLIC internal state
  2023-04-13 13:34 [PATCH] hw/intc/riscv_aplic: Zero init APLIC internal state Ivan Klokov
@ 2023-04-13 16:02 ` Anup Patel
  2023-04-17  2:28 ` Alistair Francis
  2023-04-17  2:28 ` Alistair Francis
  2 siblings, 0 replies; 4+ messages in thread
From: Anup Patel @ 2023-04-13 16:02 UTC (permalink / raw)
  To: Ivan Klokov
  Cc: qemu-devel, qemu-riscv, richard.henderson, anup.patel, palmer,
	alistair.francis

On Thu, Apr 13, 2023 at 7:04 PM Ivan Klokov <ivan.klokov@syntacore.com> wrote:
>
> Since g_new is used to initialize the RISCVAPLICState->state structure,
> in some case we get behavior that is not as expected. This patch
> changes this to g_new0, which allows to initialize the APLIC in the correct state.
>
> Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>

Looks good to me.

Reviewed-by: Anup Patel <anup@brainfault.org>

Regards,
Anup

> ---
>  hw/intc/riscv_aplic.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c
> index cfd007e629..71591d44bf 100644
> --- a/hw/intc/riscv_aplic.c
> +++ b/hw/intc/riscv_aplic.c
> @@ -803,7 +803,7 @@ static void riscv_aplic_realize(DeviceState *dev, Error **errp)
>
>      aplic->bitfield_words = (aplic->num_irqs + 31) >> 5;
>      aplic->sourcecfg = g_new0(uint32_t, aplic->num_irqs);
> -    aplic->state = g_new(uint32_t, aplic->num_irqs);
> +    aplic->state = g_new0(uint32_t, aplic->num_irqs);
>      aplic->target = g_new0(uint32_t, aplic->num_irqs);
>      if (!aplic->msimode) {
>          for (i = 0; i < aplic->num_irqs; i++) {
> --
> 2.34.1
>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] hw/intc/riscv_aplic: Zero init APLIC internal state
  2023-04-13 13:34 [PATCH] hw/intc/riscv_aplic: Zero init APLIC internal state Ivan Klokov
  2023-04-13 16:02 ` Anup Patel
@ 2023-04-17  2:28 ` Alistair Francis
  2023-04-17  2:28 ` Alistair Francis
  2 siblings, 0 replies; 4+ messages in thread
From: Alistair Francis @ 2023-04-17  2:28 UTC (permalink / raw)
  To: Ivan Klokov
  Cc: qemu-devel, qemu-riscv, richard.henderson, anup, anup.patel,
	palmer, alistair.francis

On Thu, Apr 13, 2023 at 11:35 PM Ivan Klokov <ivan.klokov@syntacore.com> wrote:
>
> Since g_new is used to initialize the RISCVAPLICState->state structure,
> in some case we get behavior that is not as expected. This patch
> changes this to g_new0, which allows to initialize the APLIC in the correct state.
>
> Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>

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

Alistair

> ---
>  hw/intc/riscv_aplic.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c
> index cfd007e629..71591d44bf 100644
> --- a/hw/intc/riscv_aplic.c
> +++ b/hw/intc/riscv_aplic.c
> @@ -803,7 +803,7 @@ static void riscv_aplic_realize(DeviceState *dev, Error **errp)
>
>      aplic->bitfield_words = (aplic->num_irqs + 31) >> 5;
>      aplic->sourcecfg = g_new0(uint32_t, aplic->num_irqs);
> -    aplic->state = g_new(uint32_t, aplic->num_irqs);
> +    aplic->state = g_new0(uint32_t, aplic->num_irqs);
>      aplic->target = g_new0(uint32_t, aplic->num_irqs);
>      if (!aplic->msimode) {
>          for (i = 0; i < aplic->num_irqs; i++) {
> --
> 2.34.1
>
>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] hw/intc/riscv_aplic: Zero init APLIC internal state
  2023-04-13 13:34 [PATCH] hw/intc/riscv_aplic: Zero init APLIC internal state Ivan Klokov
  2023-04-13 16:02 ` Anup Patel
  2023-04-17  2:28 ` Alistair Francis
@ 2023-04-17  2:28 ` Alistair Francis
  2 siblings, 0 replies; 4+ messages in thread
From: Alistair Francis @ 2023-04-17  2:28 UTC (permalink / raw)
  To: Ivan Klokov
  Cc: qemu-devel, qemu-riscv, richard.henderson, anup, anup.patel,
	palmer, alistair.francis

On Thu, Apr 13, 2023 at 11:35 PM Ivan Klokov <ivan.klokov@syntacore.com> wrote:
>
> Since g_new is used to initialize the RISCVAPLICState->state structure,
> in some case we get behavior that is not as expected. This patch
> changes this to g_new0, which allows to initialize the APLIC in the correct state.
>
> Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>

Thanks!

Applied to riscv-to-apply.next

Alistair

> ---
>  hw/intc/riscv_aplic.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c
> index cfd007e629..71591d44bf 100644
> --- a/hw/intc/riscv_aplic.c
> +++ b/hw/intc/riscv_aplic.c
> @@ -803,7 +803,7 @@ static void riscv_aplic_realize(DeviceState *dev, Error **errp)
>
>      aplic->bitfield_words = (aplic->num_irqs + 31) >> 5;
>      aplic->sourcecfg = g_new0(uint32_t, aplic->num_irqs);
> -    aplic->state = g_new(uint32_t, aplic->num_irqs);
> +    aplic->state = g_new0(uint32_t, aplic->num_irqs);
>      aplic->target = g_new0(uint32_t, aplic->num_irqs);
>      if (!aplic->msimode) {
>          for (i = 0; i < aplic->num_irqs; i++) {
> --
> 2.34.1
>
>


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-04-17  2:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-13 13:34 [PATCH] hw/intc/riscv_aplic: Zero init APLIC internal state Ivan Klokov
2023-04-13 16:02 ` Anup Patel
2023-04-17  2:28 ` Alistair Francis
2023-04-17  2:28 ` Alistair Francis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).