| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
OK millert@
|
|
|
|
| |
OK millert@
|
|
|
|
| |
OK millert@
|
|
|
|
| |
OK millert@
|
|
|
|
| |
OK millert@
|
|
|
|
| |
OK millert@
|
|
|
|
|
|
| |
Makes previously explicit checking less verbose.
OK millert@
|
|
|
|
|
|
|
| |
One case uses the explicit range from the code and the other was
inferred from reading the usage.
OK millert@
|
|
|
|
|
|
|
| |
I missed the verbose pattern that it used for error checking the first
time around.
OK millert@
|
|
|
|
|
|
| |
Prefer error reporting is to silent clipping.
OK millert@
|
| |
|
|
|
|
| |
OK millert@
|
|
|
|
|
|
| |
defined, as was previously the case.
OK kettenis@
|
|
|
|
|
|
|
| |
Clean up things a bit, adding documentation about the source of the
information about these instructions.
From miod@
|
|
|
|
|
|
|
| |
error, a broadcast mbuf will stay in the socket buffer forever.
This is bad as multiple mbufs can use up all the space. Better
report ELOOP, dissolve splicing, and let userland handle it.
OK anton@
|
|
|
|
|
|
|
|
|
|
|
|
| |
packets were resent through simplex broadcast delivery and socket
splicing. Although there is an M_LOOP check in somove(9), it did
not take effect. if_input_local() cleared the M_BCAST and M_MCAST
flags with m_resethdr().
As if_input_local() is used for broadcast and multicast delivery,
it was a mistake to delete them. Keep the M_BCAST and M_MCAST mbuf
flags when packets are reinjected into the network stack.
Reported-by: syzbot+a43ace363f1b663238f8@syzkaller.appspotmail.com
OK anton@; discussed with claudio@
|
|
|
|
|
|
|
|
|
|
|
|
| |
mode. On modern processors (POWER8 and later) there is no performance
penalty for this as long as exceptions are disabled in the FPSCR (which
is the default). This way we don't have to implement an
architecture-dependent system call to set the mode, as it can only be done
by the kernel.
With help from gkoehler@
ok gkoehler@
|
| |
|
| |
|
| |
|
|
|
|
| |
'error' anymore.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bridge(4) drops packets coming from somewhere else that have a
source MAC address that's owned by one of the interfaces that's a
member of the bridge. because this check was done with bridge_ourether,
it included the addresses of active carp interfaces hanging off
these member interfaces. this meant if the local machine is the
carp master while another machine is trying to preempt it by sending
hellos, the packets from the other machine were dropped because the
local one is already the master.
carp roles are supposed to move around a l2 network, so another
host sending a packet with a carp mac address is actually normal
and necessary.
found by and fix tested by stsp@
ok stsp@ claudio@
|
|
|
|
|
|
|
|
|
| |
what Linux does. Let vmalloc() use km_alloc(9) instead of malloc(9) and
let kvmalloc() only use malloc(9) for small (less than a page) allocations
and atomic allocations. This should reduce the pressure on the
"interrupt-safe" map.
ok jsg@
|
|
|
|
|
|
|
|
|
| |
This prevents unwanted spinning with interrupts disabled.
At the moment, this code is only invoked through klist_invalidate()
and the callers should already hold the kernel lock. Also, one could
argue that in MP-unsafe contexts klist_lock() should only assert for
the kernel lock.
|
|
|
|
|
|
|
|
|
|
|
|
| |
On sparc64, initmsgbuf() is invoked before curcpu() is usable
on the boot processor. Consequently, it is unsafe to use mutexes
during the message buffer initialization. Avoid such use by skipping
log_mtx when appending a newline from initmsgbuf().
Use mbp instead of msgbufp as the buffer argument to the putchar routine
for consistency.
Bug reported and fix suggested by miod@
|
|
|
|
|
|
|
|
|
|
| |
The use of kqueue as backend has introduced a significant regression
in the performance of select(2), so go back to using the original code.
Some additional management overhead is to be expected when using kqueue.
However, the overhead of the current implementation is too high.
Reported by bluhm@ on bugs@
|
| |
|
|
|
|
|
|
|
| |
struct ip_mreqn allows to use the interface index to select the
interface for multicast packets which makes it possible to use
this with unnumbered interfaces.
OK dlg@ robert@
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The previous behavior was conservative but a bit too restrictive.
The V4L API lets several processes open a single video device, with
exclusive access to certain methods when a process starts streaming.
This is not trivial to implement.
This small change fixes webcam usage with Firefox and BigBlueButton.
Diff simplified + ok mglocker@, thanks!
|
|
|
|
|
|
|
|
|
| |
associated IPv6 NDP entry is invalidated. Otherwise we end up with an
INCOMPLETE entry that can't be updated to STALE and REACHABLE by
neighbor advertisements and thus interrupting communication.
This is the same as arpinvalidate() for IPv4.
Guidance bluhm & claudio, fix proposed by claudio
OK claudio
|
|
|
|
|
|
| |
ones added to malloc() and free(). Pass the struct pool pointer as argv1
since it is currently not possible to pass the pool name to btrace.
OK mpi@
|
|
|
|
|
|
|
| |
uvm_km_zalloc(9).
tested on qemu pretending to be a 586
ok bluhm@
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Less scheduling, lock contention and queues.
Previously, if_netisr() handled the net lock around those calls, now
if_input_process() does it before calling ether_input(), so no need to add
or remove NET_*LOCK() anywhere.
OK mvs claudio
|
|
|
|
|
|
| |
patch submitted by Ralf Horstmann from ackstorm.de
OK dlg@
|
|
|
|
|
|
|
|
|
|
|
|
| |
"struct pppoe_softc" documents no member being protected by the kernel lock
(alone); further review of the code paths starting from pppoeintr() shows
no sleeping points which must be avoided in the softnet thread.
Everything is fine as is to run without the big lock, so remove it.
Tests sthen
Feedback mpi mvs
OK mvs claudio
|
|
|
|
|
|
| |
longer memcopied but assigned. Alignment should not be an issue
as it is __packed.
Part of a larger diff from dlg@; OK dlg@ sashan@
|
|
|
|
| |
ok ok@ yasuoka@
|
|
|
|
| |
ok jmatthew@
|
|
|
|
|
|
| |
than uvm_km_valloc(9).
ok kettenis@
|
|
|
|
| |
From Yifei ZHAN on tech@
|
|
|
|
|
|
|
|
|
|
|
| |
LM9002/9003 is very similar to LM9001 since it works just fine on LM9002
with the codebase for LM9001.
LM9013 on the other hand is fairly different from LM9001 and is more like
Yeeloong 8089 when it comes to hardware design. More work might be needed
to make it fully functional.
From Yifei ZHAN on tech@
|
|
|
|
|
|
| |
if_detach() will do this.
ok kn@
|
|
|
|
|
|
| |
if_detach() will do this.
ok kn@
|
|
|
|
|
|
| |
and were kept only for backward compatibility reasons.
ok mpi@ yasuoka@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bpf_catchpacket had a chunk to deal with reader timeouts, but that
has largely been moved to bpfread. the vestigal code that was left
still tried to wake up a reader when a buffer got full, but there
already is a chunk of code that wakes up readers when the buffer
gets full.
bpf_wakeup now checks for readers before calling wakeup directly,
rather than pushing the wakeup to a task and calling it unconditionally.
the task_add is now only done when the bpfdesc actually has something
that needs it.
ok visa@
|
|
|
|
|
|
| |
uvm_km_valloc(9). Tested on a T5120.
ok mpi@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the pool(9) timeouts to use the system uptime instead of ticks.
- Change the timeouts from variables to macros so we can use
SEC_TO_NSEC(). This means these timeouts are no longer patchable
via ddb(4). dlg@ does not think this will be a problem, as the
timeout intervals have not changed in years.
- Use low-res time to keep things fast. Add a local copy of
getnsecuptime() to subr_pool.c to keep the diff small. We will need
to move getnsecuptime() into kern_tc.c and document it later if we
ever have other users elsewhere in the kernel.
- Rename ph_tick -> ph_timestamp and pr_cache_tick -> pr_cache_timestamp.
Prompted by tedu@ some time ago, but the effort stalled (may have been
my fault). Input from kettenis@ and dlg@.
Special thanks to mpi@ for help with struct shuffling. This change
does not increase the size of struct pool_page_header or struct pool.
ok dlg@ mpi@
|