On 26/04/2019 15:15, Andrii Anisov wrote:
Julien,
Sorry, reply format is broken. It should be as following:
On 26.04.19 16:50, Andrii Anisov wrote:
To be honest, I am not entirely sure whether the isb() is necessary
here. At worst, an entry of an existing mappings is not cached with the
SCTLR_EL2.WXN set. This may only defer the problem is an entry is
incorrectly configured before the flush. This is done early at boot (and
will be done much earlier in [1]).
Well, following this logic we may finish with TLB flush is not needed here at
all. Because entries, already reached TLB, were configured before, and are
believed valid. All the next will have WXN set.
But in this case, ISB is needed as an exact point from which all new TLB entries
will have WXN.
I am not sure to follow your point here. It wasn't clear to me whether the isb()
between setting SCTLR_EL2.WXN and TLB flush is strictly necessary. The TLB flush
contain an isb() so, it may has well be enough here.
However, speaking with Mark Rutland, it would be best to keep the sequence
suggest in this patch. So SCTLR_EL2.WXN is visible before the flush and the
flush will ensure all current entries are removed. So none of the entries should
have WXN cleared.
So I will keep this patch as is.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel