[PATCH] spapr/xive: Use xive_esb_rw() to trigger interrupts

Cédric Le Goater posted 1 patch 2 years, 6 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211006210546.641102-1-clg@kaod.org
hw/intc/spapr_xive_kvm.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
[PATCH] spapr/xive: Use xive_esb_rw() to trigger interrupts
Posted by Cédric Le Goater 2 years, 6 months ago
xive_esb_rw() is the common routine used for memory accesses on ESB
page. Use it for triggers also.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/intc/spapr_xive_kvm.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c
index 630a719d578e..2f79950a644e 100644
--- a/hw/intc/spapr_xive_kvm.c
+++ b/hw/intc/spapr_xive_kvm.c
@@ -318,9 +318,7 @@ static uint8_t xive_esb_read(XiveSource *xsrc, int srcno, uint32_t offset)
 
 static void kvmppc_xive_esb_trigger(XiveSource *xsrc, int srcno)
 {
-    uint64_t *addr = xsrc->esb_mmap + xive_source_esb_page(xsrc, srcno);
-
-    *addr = 0x0;
+    xive_esb_rw(xsrc, srcno, 0, 0, true);
 }
 
 uint64_t kvmppc_xive_esb_rw(XiveSource *xsrc, int srcno, uint32_t offset,
-- 
2.31.1


Re: [PATCH] spapr/xive: Use xive_esb_rw() to trigger interrupts
Posted by David Gibson 2 years, 6 months ago
On Wed, Oct 06, 2021 at 11:05:46PM +0200, Cédric Le Goater wrote:
> xive_esb_rw() is the common routine used for memory accesses on ESB
> page. Use it for triggers also.
> 
> Signed-off-by: Cédric Le Goater <clg@kaod.org>

Applied to ppc-fot-6.2, thanks.

> ---
>  hw/intc/spapr_xive_kvm.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c
> index 630a719d578e..2f79950a644e 100644
> --- a/hw/intc/spapr_xive_kvm.c
> +++ b/hw/intc/spapr_xive_kvm.c
> @@ -318,9 +318,7 @@ static uint8_t xive_esb_read(XiveSource *xsrc, int srcno, uint32_t offset)
>  
>  static void kvmppc_xive_esb_trigger(XiveSource *xsrc, int srcno)
>  {
> -    uint64_t *addr = xsrc->esb_mmap + xive_source_esb_page(xsrc, srcno);
> -
> -    *addr = 0x0;
> +    xive_esb_rw(xsrc, srcno, 0, 0, true);
>  }
>  
>  uint64_t kvmppc_xive_esb_rw(XiveSource *xsrc, int srcno, uint32_t offset,

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson