All of lore.kernel.org
 help / color / mirror / Atom feed
* [for-4.8][PATCH] xen/arm64: Add missing synchronization barrier in invalidate_cache
@ 2016-09-21 14:52 Julien Grall
  2016-09-21 15:32 ` Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 3+ messages in thread
From: Julien Grall @ 2016-09-21 14:52 UTC (permalink / raw)
  To: xen-devel; +Cc: Julien Grall, sstabellini

The invalidation of the instructions cache requires barriers to ensure
the completion of the invalidation before continuing (see B2.3.4 in ARM
DDI 0487A.j).

This was overlooked in commit fb9d877 "xen/arm64: Add an helper to
invalidate all instruction caches".

Signed-off-by: Julien Grall <julien.grall@arm.com>
---
 xen/include/asm-arm/arm64/page.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/include/asm-arm/arm64/page.h b/xen/include/asm-arm/arm64/page.h
index 79ef7bd..23d7781 100644
--- a/xen/include/asm-arm/arm64/page.h
+++ b/xen/include/asm-arm/arm64/page.h
@@ -33,6 +33,8 @@ static inline void write_pte(lpae_t *p, lpae_t pte)
 static inline void invalidate_icache(void)
 {
     asm volatile ("ic ialluis");
+    dsb(ish);               /* Ensure completion of the flush I-cache */
+    isb();
 }
 
 /*
-- 
1.9.1


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

* Re: [for-4.8][PATCH] xen/arm64: Add missing synchronization barrier in invalidate_cache
  2016-09-21 14:52 [for-4.8][PATCH] xen/arm64: Add missing synchronization barrier in invalidate_cache Julien Grall
@ 2016-09-21 15:32 ` Konrad Rzeszutek Wilk
  2016-09-21 18:24   ` Stefano Stabellini
  0 siblings, 1 reply; 3+ messages in thread
From: Konrad Rzeszutek Wilk @ 2016-09-21 15:32 UTC (permalink / raw)
  To: Julien Grall; +Cc: sstabellini, xen-devel

On Wed, Sep 21, 2016 at 03:52:12PM +0100, Julien Grall wrote:
> The invalidation of the instructions cache requires barriers to ensure
> the completion of the invalidation before continuing (see B2.3.4 in ARM
> DDI 0487A.j).
> 
> This was overlooked in commit fb9d877 "xen/arm64: Add an helper to
> invalidate all instruction caches".
> 
> Signed-off-by: Julien Grall <julien.grall@arm.com>

Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

[by reading the docs]

> ---
>  xen/include/asm-arm/arm64/page.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/xen/include/asm-arm/arm64/page.h b/xen/include/asm-arm/arm64/page.h
> index 79ef7bd..23d7781 100644
> --- a/xen/include/asm-arm/arm64/page.h
> +++ b/xen/include/asm-arm/arm64/page.h
> @@ -33,6 +33,8 @@ static inline void write_pte(lpae_t *p, lpae_t pte)
>  static inline void invalidate_icache(void)
>  {
>      asm volatile ("ic ialluis");
> +    dsb(ish);               /* Ensure completion of the flush I-cache */
> +    isb();
>  }
>  
>  /*
> -- 
> 1.9.1
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

* Re: [for-4.8][PATCH] xen/arm64: Add missing synchronization barrier in invalidate_cache
  2016-09-21 15:32 ` Konrad Rzeszutek Wilk
@ 2016-09-21 18:24   ` Stefano Stabellini
  0 siblings, 0 replies; 3+ messages in thread
From: Stefano Stabellini @ 2016-09-21 18:24 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: Julien Grall, sstabellini, xen-devel

On Wed, 21 Sep 2016, Konrad Rzeszutek Wilk wrote:
> On Wed, Sep 21, 2016 at 03:52:12PM +0100, Julien Grall wrote:
> > The invalidation of the instructions cache requires barriers to ensure
> > the completion of the invalidation before continuing (see B2.3.4 in ARM
> > DDI 0487A.j).
> > 
> > This was overlooked in commit fb9d877 "xen/arm64: Add an helper to
> > invalidate all instruction caches".
> > 
> > Signed-off-by: Julien Grall <julien.grall@arm.com>
> 
> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

and committed

> 
> > ---
> >  xen/include/asm-arm/arm64/page.h | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/xen/include/asm-arm/arm64/page.h b/xen/include/asm-arm/arm64/page.h
> > index 79ef7bd..23d7781 100644
> > --- a/xen/include/asm-arm/arm64/page.h
> > +++ b/xen/include/asm-arm/arm64/page.h
> > @@ -33,6 +33,8 @@ static inline void write_pte(lpae_t *p, lpae_t pte)
> >  static inline void invalidate_icache(void)
> >  {
> >      asm volatile ("ic ialluis");
> > +    dsb(ish);               /* Ensure completion of the flush I-cache */
> > +    isb();
> >  }
> >  
> >  /*
> > -- 
> > 1.9.1
> > 
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

end of thread, other threads:[~2016-09-21 18:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-21 14:52 [for-4.8][PATCH] xen/arm64: Add missing synchronization barrier in invalidate_cache Julien Grall
2016-09-21 15:32 ` Konrad Rzeszutek Wilk
2016-09-21 18:24   ` Stefano Stabellini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.