diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -104,10 +104,10 @@ #include -_Static_assert(sizeof(struct pcb) == 1216, "struct pcb is incorrect size"); +_Static_assert(sizeof(struct pcb) == 1248, "struct pcb is incorrect size"); _Static_assert(offsetof(struct pcb, pcb_fpusaved) == 136, "pcb_fpusaved changed offset"); -_Static_assert(offsetof(struct pcb, pcb_fpustate) == 160, +_Static_assert(offsetof(struct pcb, pcb_fpustate) == 192, "pcb_fpustate changed offset"); enum arm64_bus arm64_bus_method = ARM64_BUS_NONE; diff --git a/sys/arm64/include/pcb.h b/sys/arm64/include/pcb.h --- a/sys/arm64/include/pcb.h +++ b/sys/arm64/include/pcb.h @@ -67,7 +67,7 @@ /* The bits passed to userspace in get_fpcontext */ #define PCB_FP_USERMASK (PCB_FP_STARTED) u_int pcb_vfpcpu; /* Last cpu this thread ran VFP code */ - uint64_t pcb_pad2; + uint64_t pcb_reserved[5]; /* * The userspace VFP state. The pcb_fpusaved pointer will point to diff --git a/sys/arm64/include/pmap.h b/sys/arm64/include/pmap.h --- a/sys/arm64/include/pmap.h +++ b/sys/arm64/include/pmap.h @@ -95,6 +95,7 @@ struct asid_set *pm_asid_set; /* The ASID/VMID set to use */ enum pmap_stage pm_stage; int pm_levels; + uint64_t pm_reserved[4]; }; typedef struct pmap *pmap_t; diff --git a/sys/arm64/include/proc.h b/sys/arm64/include/proc.h --- a/sys/arm64/include/proc.h +++ b/sys/arm64/include/proc.h @@ -63,6 +63,8 @@ struct { struct ptrauth_key apia; } md_ptrauth_kern; + + uint64_t md_reserved[4]; }; struct mdproc {