m68k/conf/Makefile.kern.m68k.inc now sets -fno-omit-frame-pointer
automagically when it's needed, so don't bother doing it in
individual kernel configs.
i915: Fix execlist submission register indexing harder.
This time, with any luck, I transcribed the indexing correctly.
PR port-amd64/58657: i915drmkms blank screen
atto(1): fatal cannot take special format string arguments other than
the initial %s for the program name. Gain some safety by not having
callers pass a format string in the first place.
With this, we can raise WARNS to 5.
PR lib/60949 pthread*_getname_np(3) - avoid UB if len == 0
Just make len == 0 be an EINVAL error.
Update pthread_attr_getname_np(3) man page, so it no longer says
there are no errors from pthread_attr_getname_np() - which was wrong
in any case, as there was already one (if attr is invalid), and
while there, one minor grammar fix.
No pullups currently planned.
In the fpfline trap handler, use the faultstkadj path rather than the
basic fault path. This is to handle FPU emulation faults on the 68LC040,
which use a format 4 frame; if the emulated FPU insn results in a signal,
kernel stack would be leaked.
Problem reported by Romain Dolbeau on port-m68k.
Allocate state for the FPU emulator on the kernel stack rather than as
static globals. Normally we wouldn't want to allocate this much on the
stack, but the emulator is only for user-space code, so the kernel stack
will have been idle when the F-line trap occurred; the only things on
the stack at this point are the trap frame and the small number of call
frames required to get us here.
This prevents concurrent FPU emuations from colliding with each other.
This is something that could happen when e.g. two FP-using programs are
running concurrently on a system under memory pressure and one of them
blocks during an emulation to service a page fault.
The alternatives are less than ideal: we either have to dynamically
allocate memory or wrap the emulator in a mutex.
Similarly, change __fpu_logn() and __fpu_modrem() to place their
temporaries on the stack, as well.
Problem reported by Romain Dolbeau on port-m68k.
Don't proceed with undefined results in the face of memory access
errors in the FPU emulator:
- fpu_load_ea() / fpu_store_ea(): if copyin() / copyout() return non-zero,
return SIGSEGV.
Catch some callers of fpu_load_ea() and fpu_store_ea() that were ignoring
the return value:
- fpu_emul_arith() / fpu_emul_fscale(): Pay attention to the return value
of fpu_load_ea().
- fpu_emul_fstore(): Pay attention to the return value of fpu_store_ea().
Problem reported by Romain Dolbeau on port-m68k.
secmodel.9: update some details in code examples
Back in 2009, refactoring changed where certain functionality is
located, but the examples in this man page weren't updated to match.