|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] xen/arm: Properly clean update to init_ttbr and smp_up_cpu
From: Julien Grall <jgrall@xxxxxxxxxx>
Recent rework to the secondary boot code modified how init_ttbr and
smp_up_cpu are accessed. Rather than directly accessing them, we
are using a pointer to them.
The helper clean_dcache() is expected to take the variable in parameter
and then clean its content. As we now pass a pointer to the variable,
we will clean the area storing the address rather than the content itself.
Switch to use clean_dcache_va_range() to avoid casting the pointer.
Fixes: a5ed59e62c6f ("arm/mmu: Move init_ttbr to a new section .data.idmap")
Fixes: 9a5114074b04 ("arm/smpboot: Move smp_up_cpu to a new section .data.idmap)
Reported-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx>
---
xen/arch/arm/mmu/smpboot.c | 2 +-
xen/arch/arm/smpboot.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/xen/arch/arm/mmu/smpboot.c b/xen/arch/arm/mmu/smpboot.c
index bc91fdfe3331..4ffc8254a44b 100644
--- a/xen/arch/arm/mmu/smpboot.c
+++ b/xen/arch/arm/mmu/smpboot.c
@@ -88,7 +88,7 @@ static void set_init_ttbr(lpae_t *root)
* init_ttbr will be accessed with the MMU off, so ensure the update
* is visible by cleaning the cache.
*/
- clean_dcache(ptr);
+ clean_dcache_va_range(ptr, sizeof(uint64_t));
unmap_domain_page(ptr);
}
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 119bfa3160ad..a84e706d77da 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -449,7 +449,7 @@ static void set_smp_up_cpu(unsigned long mpidr)
* smp_up_cpu will be accessed with the MMU off, so ensure the update
* is visible by cleaning the cache.
*/
- clean_dcache(ptr);
+ clean_dcache_va_range(ptr, sizeof(unsigned long));
unmap_domain_page(ptr);
--
2.40.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |