mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/arm64: Correctly align VFP regs
On arm64, VFP instructions requires vfpregs to be 128-byte aligned. By chance, the field is already correctly aligned. In the case if someone decides to add a new field before, Xen will receive a data abort as soon as it saves/restores VFP. We are safe on arm32 as the only constraint is to be 32-byte aligned. Reported-by: Chen Baozi <baozich@gmail.com> Signed-off-by: Julien Grall <julien.grall@linaro.org> Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
1 parent
34f21f9d2b
commit
9b4e96724e
1 file changed
+4
-1
@@ -1,9 +1,12 @@
|
||||
#ifndef _ARM_ARM64_VFP_H
|
||||
#define _ARM_ARM64_VFP_H
|
||||
|
||||
/* ARM64 VFP instruction requires fpregs address to be 128-byte aligned */
|
||||
#define __vfp_aligned __attribute__((aligned(16)))
|
||||
|
||||
struct vfp_state
|
||||
{
|
||||
uint64_t fpregs[64];
|
||||
uint64_t fpregs[64] __vfp_aligned;
|
||||
uint32_t fpcr;
|
||||
uint32_t fpexc32_el2;
|
||||
uint32_t fpsr;
|
||||
|
||||