Age | Commit message (Collapse) | Author |
|
|
|
this makes it consistent with the rest of the code.
|
|
OK stsp@
|
|
Found by LLVM/Clang Static Analyzer.
ok dlg@
|
|
Pointed out by jsg@ and Nathanael Rensen, <nathanael at
list ! polymorpheus ! com>, thanks!
|
|
- FORK_THREAD handling is a totally separate function, thread_fork(),
that is only used by sys___tfork() and which loses the flags, func,
arg, and newprocp parameters and gains tcb parameter to guarantee
the new thread's TCB is set before the creating thread returns
- fork1() loses its stack and tidptr parameters
Common bits factor out:
- struct proc allocation and initialization moves to thread_new()
- maxthread handling moves to fork_check_maxthread()
- setting the new thread running moves to fork_thread_start()
The MD cpu_fork() function swaps its unused stacksize parameter for
a tcb parameter.
luna88k testing by aoyama@, alpha testing by dlg@
ok mpi@
|
|
runs the mailbox interface knows about a MAC address that appears to be
derived from a unique serial number along with the raspberry pi
foundation oui.
It modifies the device tree when booting to store the MAC address
in /axi/usb/hub/ethernet/mac-address so fetch and use this value
for the integrated smsc(4) Ethernet.
A different smsc adapter plugged into one of the USB ports
probes later with a different unit number and skips this path.
|
|
currently tests the return value.
ok stsp@
|
|
close-on-exec flag on the newly allocated fd. Make falloc()'s
return arguments non-optional: assert that they're not NULL.
ok mpi@ millert@
|
|
head and tail in the interrupt handler. This fixes an old bug that
causes a Tx stall when Tx ring gets full.
|
|
|
|
interpreter whose entry point isn't in its first PT_LOAD segment.
problem report and testing by patrick@
|
|
on some or all original mfii boards (2208) the aen path fires repeatedly
without reporting anything, causes enough load to start actual io.
found by naddy@
|
|
OK miod@
|
|
ok tb@, jca@
|
|
Alexey Suslikov <alexey.suslikov at gmail.com>.
Thanks.
|
|
Thanks.
|
|
code. From Michael W. Bombardieri" <mb at ii.net>. Thanks.
|
|
Thanks.
|
|
ok bluhm@
|
|
|
|
No binary change.
|
|
ok mpi@
|
|
ok dlg@
|
|
ok mpi@
|
|
ok mpi@ bluhm@
|
|
This makes a (wrong) assert disappear and makes sure we hack to avoid a
recursion in the upcall case still work.
The real solution to this problem is to not grab the NET_LOCK() before
entering uipc_usrreq().
Issue reported by dtucker@
|
|
found by dtucker@
|
|
current process is hogging a CPU.
ok mikeb@, visa@, tedu@
|
|
Calling sched_choosecpu() at this moment often result in moving the thread
to a different CPU. This does not help the scheduler and creates a domino
effect, resulting in kernel thread moving to other CPUs.
Tested by many without performance impact. Simon Mages measured a small
performance improvement and a smaller variance with an http proxy.
Discussed with kettenis@, ok martijn@, beck@, visa@
|
|
|
|
last used by COMPAT_SYSV which was removed in 2011.
ok millert@
|
|
ok mpi@ dlg@
|
|
|
|
|
|
When destroying the ring all transfers should be already gone so there
should be no need to repeat ourselves after xbf_stop has done its work.
Get rid of the yield() that was probably masking some issues that have
been since fixed.
|
|
|
|
|
|
|
|
intr_barrier(9) is useful to make sure that after an interrupt is
masked, the interrupt handler for the device has finished executing
before proceeding with further device configuration.
However, since Xen interrupt handlers run in the thread context, we
need to make sure that they have finished as well. By scheduling a
xen_barrier_task modelled after (or rather copied ;) ifq_barrier_task
we can ensure that the interrupt handler is no longer running.
|
|
An xnf & xbf attach/detach loop has revealed that sometimes when we're
about to free a grant table entry that is still in use which is a grave
mistake code wise. Turned out we could allocate an entry twice because
of an incorrect test that took flags value into account when making the
decision regarding availability of a given entry. At the same time,
upon releasing the entry we explicitly CAS in 0 into the flags making
this check bogus.
While here be explicit about starting flags by initializing them to 0
and always panic when the "double free" condition is encountered.
rzalamena@ has lent me his eyes and has double-checked the condition.
|
|
include "pcex.h" here.
|
|
it in ipsec_common_input_cb() instead. The code that was copied
to ah6_input_cb() is now in ip6_ours() so we can call it directly.
OK mpi@
|
|
armv7 we inherited the mechanism to manually modify the kernel symbol
table to change the value of esym. We don't use this, but instead use
the virtual address that is passed to the kernel. This change makes us
only work on and hand out physical addresses. Bump the efiboot version
to make this ABI change more visible.
|
|
to make sure to pass the current mapkey to prove EFI that we know the
current memory map and its constraints. Otherwise EFI can choose to
only partially exit until we pass the correct key. As we already use
the memory map to allocate memory for the kernel, split the previous
function into one simply retrieving the table and another one who uses
the map to allocate memory. At some point it would be nice to actually
pass the table to the kernel since its data is more reliable than the
FDT only. While there, sync a bit of style with the amd64 version.
|
|
basically use htolem64 to set the address and htolem32 for the
length, not the other way round. lucky this is mostly run on x86.
found by Jon Kloske
|
|
all pools set their ipls unconditionally now, so there isn't a need
to second guess them.
pointed out by and ok jmatthew@
|
|
leaving out the size, so that
ELFNAME2(exec,makecmds)
becomes
exec_elf_makecmds
instead of
exec_elf{32,64}_makecmds
and then delete the ELFNAME2() and ELFNAMEEND() macros.
Move the prototypes for functions local to exec_elf.c to there from
exec_elf.h.
Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
Change exec_conf.c to use the size-generic names and macros
Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
_KERN_DO_ELF and _KERN_DO_ELF64 #defines.
ok jca@, encouragement from deraadt@ and tom@
|
|
and not something we guarantee to userspace
ok jca@
|
|
from all but one call
ok jca@
|