[Bug 255997] fpu_kern_thread is called before fpu_initialstate has been set in ktls_kern_thread

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 19 May 2021 11:34:13 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255997

            Bug ID: 255997
           Summary: fpu_kern_thread is called before fpu_initialstate has
                    been set in ktls_kern_thread
           Product: Base System
           Version: 13.0-STABLE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: h.zabel@beckhoff.com

the function ktls_kern_thread calls fpu_kern_thread. this allows the ktls
thread to use floating point operations. but at this point the fpu_initialstate
variable in amd64/amd64/fpu.c is not initialized.

if this thread would perform fpu operations directly after calling
fpu_kern_thread, a page fault will occur in fpudna when accessing
fpu_initialstate.

this leads to an endless boot loop.

-> the fpu layer must be initialised before a kernel thread
calls fpu_kern_thread or fpu_kern_enter/leave.

-- 
You are receiving this mail because:
You are the assignee for the bug.