diff options
author | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2024-09-03 17:19:54 +0000 |
---|---|---|
committer | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2024-09-03 17:19:54 +0000 |
commit | 669d1de6943a3d288df77babd5352b4671a6be8b (patch) | |
tree | 201e2ad20e632e8a7c061587b24a09808b97a589 /lib/libc/asr/gethostnamadr_async.c | |
parent | 4d23f3ef08e8bc35fe101449a9df91371118d81d (diff) |
For virtual addresses use fixed page frame without AMD SEV reduction.
When running as a SEV guest, page frame mask is calculated from the
CPUID provided "physical address bit reduction". The amd64 pmap
code uses the variable pg_frame instead of the defined PG_FRAME
0x000ffffffffff000.
There was one instance in pmap code where pg_frame was applied to
virtual address, not physical address. On some machines the address
bit reduction is rather large with six bits. So the calculated
pg_frame is 0x00003fffffe00000. However, on amd64 VM_MAX_ADDRESS
is defined as 0x00007fbfdfeff000. Masking a such large address
with pg_frame caused havoc. Therefore, when masking virtual
addresses, still use PG_FRAME.
from hshoexer@
Diffstat (limited to 'lib/libc/asr/gethostnamadr_async.c')
0 files changed, 0 insertions, 0 deletions