diff options
author | Marc Zyngier <[email protected]> | 2020-06-09 08:40:35 +0100 |
---|---|---|
committer | Marc Zyngier <[email protected]> | 2020-06-10 16:03:57 +0100 |
commit | 3204be4109ad681523e3461ce64454c79278450a (patch) | |
tree | 26da96016b68da0a7132b158e832eea77ab8ac2a /lib/test_overflow.c | |
parent | e8679fedd026eb3b4655af83829d9036e32c9b97 (diff) |
KVM: arm64: Make vcpu_cp1x() work on Big Endian hosts
AArch32 CP1x registers are overlayed on their AArch64 counterparts
in the vcpu struct. This leads to an interesting problem as they
are stored in their CPU-local format, and thus a CP1x register
doesn't "hit" the lower 32bit portion of the AArch64 register on
a BE host.
To workaround this unfortunate situation, introduce a bias trick
in the vcpu_cp1x() accessors which picks the correct half of the
64bit register.
Cc: [email protected]
Reported-by: James Morse <[email protected]>
Tested-by: James Morse <[email protected]>
Acked-by: James Morse <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Diffstat (limited to 'lib/test_overflow.c')
0 files changed, 0 insertions, 0 deletions