Age | Commit message (Collapse) | Author |
|
from josiah frentsos, tweaked by schwarze
ok schwarze
|
|
ok miod@ jmc@
|
|
ok jmc@
|
|
|
|
ok schwarze@
|
|
|
|
OK jmatthew@
|
|
OK mpi@
|
|
OK cheloha@
|
|
Make refcnt_rele() and refcnt_finalize() order memory operations so that
preceding loads and stores happen before 1->0 transition. Also ensure
that loads and stores that depend on the transition really begin only
after the transition has occurred. Otherwise the object destructor might
not see the object's latest state.
OK bluhm@
|
|
the kstat api is a small part of implementing a kstat, most of it
depends on how you set up the kstat struct.
|
|
we did want it, so it's there and documented.
|
|
jmc@ dislikes a comma before "then" in a conditional, so leave those
untouched.
ok jmc@
|
|
commit)
|
|
ok jmc@ schwarze@
|
|
refcnt_shared() checks whether the object has multiple references.
When refcnt_shared() returns zero, the caller is the only reference
holder.
refcnt_read() returns a snapshot of the counter value.
refcnt_shared() suggested by dlg@.
OK dlg@ mvs@
|
|
OK kettenis@
|
|
|
|
|
|
also uses these names. This implements a complete interface for
atomic operations, such functions can be used for every access.
They provide compiler barriers, but no CPU memory barriers. This
is consistent with our other atomic operations.
OK mvs@ visa@
|
|
|
|
some other tweaks for readability or brevity while here
|
|
When using device trees, the ia_name field of struct i2c_attach_args
points to the first string of the device node's "compatible" array.
However, in many cases it would be preferable to use the last, most
general "compatible" entry as a device matching criterion.
Enable more flexible device matching by permitting ia_name to point to
the raw "compatible" data which is a concatenation of NUL-terminated
strings. I2C bus code will supply the data and set ia_name and
ia_namelen. I2C device drivers will use iic_is_compatible() to check
matches. This method is also backwards compatible with the old, direct
use of ia_name.
Prompted by a related patch from kettenis@.
OK kettenis@
|
|
ok jmc@ sthen@ millert@
|
|
ok miod@ mpi@
|
|
|
|
|
|
ok visa@
|
|
|
|
Pass the device vnode as a parameter to VOP_STRATEGY() to allow calling
the correct vop_strategy callback. Now the vnode is also available
in the callback.
OK mpi@
|
|
(both kernel and userland bits)
GENERIC + VFSLCKDEBUG is broken with it.
|
|
unbreak the tree. found hard way by tb@
ok tb@ which have the same diff
|
|
|
|
PACKET_TAG_IPSEC_FLOWINFO to specify the IPsec flow.
ok mvs
|
|
|
|
In timeout_barrier(9) we take/release the kernel lock to ensure that the
given timeout has finished running (if it had been running at all).
This approach is inefficient. If we put a barrier timeout on the
queue and wait for it to run in cond_wait(9) we can block instead of
spinning for the kernel lock. We already do this for process-context
timeouts in timeout_barrier(9) anyway.
Discussed with dlg@, visa@, and mpi@.
ok dlg@
|
|
OK deraadt@
|
|
ok jmc@
|
|
Clarify that printf(9) only knows
%[width][size]conversion
contrary to printf(3)'s
%[argno$][flags][width][.precision][size]conversion
Feedback OK jmc
OK deraadt
|
|
case when requested table is already exists.
Except initialization time, route_output() and if_createrdomain() are the
only paths where we call rtable_add(9). We check requested table existence
by rtable_exists(9) and it's not the error condition if the table exists.
Otherwise we are trying to create requested table by rtable_add(9). Those
paths are kernel locked so concurrent thread can't create requested table
just after rtable_exists(9) check. Also rtable_add(9) has internal
rtable_exists(9) check and in this case the table existence assumed as
EEXIST error. This error path is never reached.
We are going to unlock PF_ROUTE sockets. This means route_output() will
not be serialized with if_createrdomain() and concurrent thread could
create requested table. Table existence check and creation should be
serialized and it makes sense to do this within rtable_add(9). This time
kernel lock is used for this so it pushed down to rtable_add(9). The
internal rtable_exists(9) check was modified and table existence is not
error now.
Since the external rtable_exists(9) check is useless it was removed from
if_createrdomain(). It still exists in route_output() path because the
logic is more complicated here.
ok mpi@
|
|
|
|
and installing USD/SMM/PSD docs.
jmc@ agrees with the direction, ok millert@ on an earlier diff
|
|
i'm not a fan of having to cast to caddr_t when we have modern
inventions like void *s we can take advantage of.
ok claudio@ mvs@ bluhm@
|
|
ok millert@
|
|
|
|
|
|
|
|
|
|
We don't use static in the kernel due to ddb so functions private
to the compilation unit are basically equivalent.
OK cheloha@ gnezdo@ mglocker@
|
|
ok kn@ mvs@
|