Age | Commit message (Collapse) | Author |
|
for sockets is non-blocking.
This allows us to G/C SS_NBIO. Having to keep the two flags in sync
in a mp-safe way is complicated.
This change introduce a behavior change in sosplice(), it can now
always block. However this should not matter much due to the socket
lock being taken beforhand.
ok bluhm@, benno@, visa@
|
|
version to in pflow_get_mbuf(),
to match the rest of the file
ok benno@ florian@
|
|
locking.
ok visa@, bluhm@
|
|
The account flag `ASU' will no longer be set but that makes suser()
mpsafe since it no longer mess with a per-process field.
No objection from millert@, ok tedu@, bluhm@
|
|
memory shortage. As it is invoked from a system call, it should
not fail and wait instead.
OK visa@ mpi@
|
|
NOTE: code still runs with single softnet task. change definition of
SOFTNET_TASKS in net/if.c, if you want to have more than one softnet task
OK mpi@, OK phessler@
|
|
|
|
Tested by Hrvoje Popovski.
|
|
Tested by Hrvoje Popovski, ok bluhm@
|
|
ok phessler@, visa@, bluhm@
|
|
Input from mpi@, jmatthew@; OK mpi@, henning@, benno@
|
|
ok florian@
|
|
|
|
collection by a mbuf queue. with help from mpi@
ok florian@
|
|
Recursions are still marked as XXXSMP.
ok deraadt@, bluhm@
|
|
For the moment the NET_LOCK() is always taken by threads running under
KERNEL_LOCK(). That means it doesn't buy us anything except a possible
deadlock that we did not spot. So make sure this doesn't happen, we'll
have plenty of time in the next release cycle to stress test it.
ok visa@
|
|
This is most likely to be the cause of the deadlock seen by port builders
since it's the only changed that happened after a2k17.
Instead bring back pirofti@ original hack to release the NET_LOCK() inside
iwm(4) and iwn(4).
This fixes some splassert reported by bluhm@
Deadlock reported by naddy@ and rpe@ and ajacoutot@ confirmed the deadlock
has been introduced post a2k17.
Tested by and ok tb@
|
|
Found by Hrvoje Popovski.
|
|
Recursions are currently known and marked a XXXSMP.
Please report any assert to bugs@
|
|
rectification.
|
|
only once per packet.
Fix a regression introduced when if_input() started to be called by
every pseudo-driver.
ok claudio@, dlg@
|
|
them.
ok claudio@
|
|
With this regress tests pass again.
OK benno
|
|
OK benno
|
|
upcoming locking.
ok visa@, bluhm@
|
|
splsoftnet()/splx() until the known issues are fixed.
In other words, stop using a rwlock since it creates a deadlock when
chrome is used.
Issue reported by Dimitris Papastamos and kettenis@
ok visa@
|
|
ok mpi, bluhm
|
|
not recursive.
This is temporary until all recursions are found and can be addressed
in a correct way.
With inputs from bluhm@
|
|
The current reason is that rtalloc_mpath(9) inside ip_output() might
end up inserting a RTF_CLONED route and that require a write lock.
ok kettenis@, bluhm@
|
|
and pretending the output succeeded. Packets are still dropped!
Idea from jsg@ following same change to bridge(4). ok mpi@
|
|
Input deraadt@
Bug fix & OK benno@
|
|
Call sobind(9) only when we have a source ip.
With this we can treat sc->so != NULL as a flag if the interface
is in state IFF_RUNNING.
Input & OK bluhm@, OK benno@
|
|
OK semarie@, deraadt@
|
|
|
|
Issue reported by semarie@ on bugs@ who also isolated the
use-after-fruit to pflow(4) using dlg@'s tracing mbuf diff.
Inputs from and ok florian@, semarie@, benno@
|
|
|
|
pointed out by and OK bluhm@
|
|
packets directly into the network stack with ip_output().
The locking is intentionally left as is and will be improved in
another commit.
Input / OK bluhm@, OK benno@
|
|
OK benno@
|
|
receiving interface in the packet header of every mbuf.
The interface pointer should now be retrieved when necessary with
if_get(). If a NULL pointer is returned by if_get(), the interface
has probably been destroy/removed and the mbuf should be freed.
Such mechanism will simplify garbage collection of mbufs and limit
problems with dangling ifp pointers.
Tested by jmatthew@ and krw@, discussed with many.
ok mikeb@, bluhm@, dlg@
|
|
something based on an address family and later assumes one of the paths
was taken. This was initially just calls to panic until guenther
suggested a function to reduce the amount of strings needed.
This reduces the amount of noise with static analysers and acts
as a sanity check.
ok guenther@ bluhm@
|
|
long live the one true internet.
ok henning mikeb
|
|
ok deraadt@ tedu@
|
|
to include that than rdnvar.h. ok deraadt dlg
|
|
diff from benno@.
ok benno@, florian@
|
|
|
|
after discussions with beck deraadt kettenis.
|
|
ever used to pass on uint32 (for ipsec). stop that madness and just pass
the uint32, 0 in all cases but the two that pass the ipsec flowinfo.
ok deraadt reyk guenther
|
|
Avoid the confusion by using an appropriate name for the variable.
Note that since routing domain IDs are a subset of the set of routing
table IDs, the following idiom is correct:
rtableid = rdomain
But to get the routing domain ID corresponding to a given routing table
ID, you must call rtable_l2(9).
claudio@ likes it, ok mikeb@
|
|
option is pflowproto 10. Also it duplicates a lot of code from
pflowproto 10 and will get in the way in the future.
OK benno@
|