Index: sys/amd64/amd64/fpu.c =================================================================== --- sys/amd64/amd64/fpu.c +++ sys/amd64/amd64/fpu.c @@ -368,8 +368,10 @@ register_t saveintr; int cp[4], i, max_ext_n; - fpu_initialstate = malloc(cpu_max_ext_state_size, M_DEVBUF, - M_WAITOK | M_ZERO); + fpu_initialstate = malloc(cpu_max_ext_state_size + XSAVE_AREA_ALIGN - 1, + M_DEVBUF, M_WAITOK | M_ZERO); + fpu_initialstate = (void *)roundup2((uintptr_t)fpu_initialstate, + XSAVE_AREA_ALIGN); saveintr = intr_disable(); stop_emulating(); Index: sys/i386/i386/npx.c =================================================================== --- sys/i386/i386/npx.c +++ sys/i386/i386/npx.c @@ -479,8 +479,10 @@ if (!hw_float) return; - npx_initialstate = malloc(cpu_max_ext_state_size, M_DEVBUF, - M_WAITOK | M_ZERO); + npx_initialstate = malloc(cpu_max_ext_state_size + XSAVE_AREA_ALIGN - 1, + M_DEVBUF, M_WAITOK | M_ZERO); + npx_initialstate = (void *)roundup2((uintptr_t)npx_initialstate, + XSAVE_AREA_ALIGN); saveintr = intr_disable(); stop_emulating();