openbsd
6 years agoadd ifiqueues for mp safety and nics with multiple rx rings.
dlg [Fri, 15 Dec 2017 01:37:30 +0000 (01:37 +0000)]
add ifiqueues for mp safety and nics with multiple rx rings.

currently there is a single mbuf_queue per interface, which all
rings on a nic shove packets onto. while the list inside this queue
is protected by a mutex, the counters around it (ie, ipackets,
ibytes, idrops) are not. this means updates can be lost, and reading
the statistics is also inconsistent. having a single queue means
that busy rx rings can dominate and then starve the others.

ifiqueue structs are like ifqueue structs. they provide per ring
queues, and independent counters for each ring. when ifdata is read
for userland, these counters are aggregated. having a queue per
ring now allows for per ring backpressure to be applied. MCLGETI
will have it's day again.

right now we assume every interface wants an input queue and
unconditionally provide one. individual interfaces can opt into
more.

im not completely happy about the shape of this atm, but shuffling
it around more makes the diff bigger.

ok visa@

6 years agomake sched_barrier use cond_wait/cond_signal.
dlg [Thu, 14 Dec 2017 23:21:04 +0000 (23:21 +0000)]
make sched_barrier use cond_wait/cond_signal.

previously the code was using a percpu flag to manage the sleeps/wakeups,
which means multiple threads waiting for a barrier on a cpu could
race. moving to a cond struct on the stack fixes this.

while here, get rid of the sbar taskq and just use systqmp instead.
the barrier tasks are short, so there's no real downside.

ok mpi@

6 years agoset Location header for 307 and 308 status codes
benno [Thu, 14 Dec 2017 21:19:47 +0000 (21:19 +0000)]
set Location header for 307 and 308 status codes
ok sthen@ phessler@

6 years agoReplace ED25519's private SHA-512 implementation with a call to the
naddy [Thu, 14 Dec 2017 21:07:39 +0000 (21:07 +0000)]
Replace ED25519's private SHA-512 implementation with a call to the
regular digest code.  This speeds up compilation considerably.
ok markus@

6 years agoDon't bother using DETACH_FORCE for the softraid luns at reboot
deraadt [Thu, 14 Dec 2017 20:23:13 +0000 (20:23 +0000)]
Don't bother using DETACH_FORCE for the softraid luns at reboot
time; the aggressive mountpoint destruction seems to hit insane
use-after-frees when we are already far on the way down.

6 years agoGive vflush_vnode() a hint about vnodes we don't need to account as "busy".
deraadt [Thu, 14 Dec 2017 20:20:38 +0000 (20:20 +0000)]
Give vflush_vnode() a hint about vnodes we don't need to account as "busy".
Change mountpoint to RDONLY a little later.  Seems to improve the
rw->ro transition a bit.

6 years agoMake roaming after a background scan work while tcpbench -u is running
stsp [Thu, 14 Dec 2017 20:12:32 +0000 (20:12 +0000)]
Make roaming after a background scan work while tcpbench -u is running
over iwn(4), in the same way as this was done for iwm(4).

I forgot about making iwn(4) heed the IEEE80211_F_TX_MGMT_ONLY flag which
is used to disable queueing of new data frames during an AP switch.

Found due to a problem report by naddy@
ok phessler@ tb@

6 years agoSimplify and unify timespec variables used in those event loops
jca [Thu, 14 Dec 2017 18:56:22 +0000 (18:56 +0000)]
Simplify and unify timespec variables used in those event loops

ok millert@

6 years agoMy previous commit broke the ramdisk build; fix it
stsp [Thu, 14 Dec 2017 18:52:17 +0000 (18:52 +0000)]
My previous commit broke the ramdisk build; fix it

6 years agowhen -h is passed don't print any header, as is common practise in other systems...
jasper [Thu, 14 Dec 2017 18:03:03 +0000 (18:03 +0000)]
when -h is passed don't print any header, as is common practise in other systems too.
adjust uptime.1 while here as pointed out by martijn@

ok tb@ jca@ martijn@

6 years agosync
deraadt [Thu, 14 Dec 2017 17:48:47 +0000 (17:48 +0000)]
sync

6 years agoIf switching RW->RO, then stop deferring timestamp writes...and possibly
guenther [Thu, 14 Dec 2017 17:25:39 +0000 (17:25 +0000)]
If switching RW->RO, then stop deferring timestamp writes...and possibly
other pending inode attribute changes.  We appear to be missing UFS_UPDATE()
calls in some paths with the result that bsd.rd remounting the newly
created /mnt to RO would lose the GID changes on device inodes there.
This only affected devices, as they're the only inodes where timestamp
writes are delayed.

ok deraadt@

6 years agoAdd Symbols.map to explicitly define the ABIs, hiding linker defined symbols.
guenther [Thu, 14 Dec 2017 17:06:33 +0000 (17:06 +0000)]
Add Symbols.map to explicitly define the ABIs, hiding linker defined symbols.
Use hidden aliases for internal invocations of exported symbols to avoid PLT.

ok deraadt@ kettenis@ jca@

6 years agosync
deraadt [Thu, 14 Dec 2017 16:57:59 +0000 (16:57 +0000)]
sync

6 years agoUse CLOCK_MONOTONIC for the rpc event loops
jca [Thu, 14 Dec 2017 16:55:44 +0000 (16:55 +0000)]
Use CLOCK_MONOTONIC for the rpc event loops

From Scott Cheloha, ok deraadt@ tb@

6 years agoAdd a missing call to fuse_set_signal_handlers(3) in fuse_setup(3) so that
helg [Thu, 14 Dec 2017 14:50:02 +0000 (14:50 +0000)]
Add a missing call to fuse_set_signal_handlers(3) in fuse_setup(3) so that
any file systems that call fuse_setup(3) or fuse_main(3) trap signals
gracefully.

ok mpi@

6 years agoStop printing debug info about stations leaving a wifi network when
stsp [Thu, 14 Dec 2017 14:27:10 +0000 (14:27 +0000)]
Stop printing debug info about stations leaving a wifi network when
we aren't running in hostap or ibss mode.

6 years agoThe pf code marks ICMP packets belonging to an TCP or UDP divert
bluhm [Thu, 14 Dec 2017 14:26:50 +0000 (14:26 +0000)]
The pf code marks ICMP packets belonging to an TCP or UDP divert
state as diverted.  This is necessary for IP input to accept the
packet as ours.  But it must not be used to match the ICMP packet
to a raw socket.  Clear the PF_TAG_DIVERTED mbuf pf flag for the
special ICMP and ICMP6 packets in icmp_input_if() and icmp6_input().

The m_tag_delete_chain() caused an inconsistent PF_TAG_DIVERTED
mbuf pf flag and PACKET_TAG_PF_DIVERT mbuf tag which triggered an
assert in rip_input().  Deleting all mbuf tags can have undesired
side effects and is not necessary anymore since icmp_reflect() calls
m_resethdr().  Do not touch the mbuf tags and adjust the mbuf pf
flags for the correct behavior of rip_input() and rip6_input().

reported by Chris Eidem, James Turner, vicviq, Scott Vanderbilt
OK mpi@

6 years agoAdd background scanning support to iwn(4), as was done for iwm(4) recently.
stsp [Thu, 14 Dec 2017 14:21:11 +0000 (14:21 +0000)]
Add background scanning support to iwn(4), as was done for iwm(4) recently.

Tested on following devices by various people: 6300, 6200, 6205, 2200, 5100

ok phessler@ tb@

6 years agoDrop -g from CFLAGS, bsd.lib.mk adds it by default
jca [Thu, 14 Dec 2017 13:50:13 +0000 (13:50 +0000)]
Drop -g from CFLAGS, bsd.lib.mk adds it by default

ok mpi@ helg@

6 years agofuse_opt_add_opt_escaped needs to allocate space for the terminating NUL
jca [Thu, 14 Dec 2017 13:23:30 +0000 (13:23 +0000)]
fuse_opt_add_opt_escaped needs to allocate space for the terminating NUL

Spotted by malloc.conf -> S, ok helg@

6 years agoFree FUSE channel if fuse_new(3) fails in fuse_setup(3).
helg [Thu, 14 Dec 2017 13:11:37 +0000 (13:11 +0000)]
Free FUSE channel if fuse_new(3) fails in fuse_setup(3).

ok mpi@

6 years agoEnable the awk scripts to generate ex_def.h and options_def.h.
martijn [Thu, 14 Dec 2017 10:02:53 +0000 (10:02 +0000)]
Enable the awk scripts to generate ex_def.h and options_def.h.
These scripts generate the enums required for the ex commands and vi
options.
Before these lists had to be maintained either by hand or someone had to
stumble upon these scripts and figure out how to use them. By enabling them
these headers are now always in sync based on the comments in the
corresponding source files, which are a lot harder to miss during an
update than an extra file.

Update the awk scripts to the new enum style introduced by bentley@ with
his update on options_def.h r1.7

Feedback Makefile semantics by espie@
Original diff and OK tb@
OK millert@

6 years agoMake a few internal symbols static and add a Symbols.map version script
kettenis [Thu, 14 Dec 2017 09:27:44 +0000 (09:27 +0000)]
Make a few internal symbols static and add a Symbols.map version script
to control which symbols are exported from the shared library.

ok guenther@, deraadt@, jca@

6 years agolet urtwn(4) find my TP-LINK TL-WN722N v2
benno [Thu, 14 Dec 2017 09:26:11 +0000 (09:26 +0000)]
let urtwn(4) find my TP-LINK TL-WN722N v2
ok deraadt@ phessler@ kettenis@

6 years agosync
benno [Thu, 14 Dec 2017 09:25:31 +0000 (09:25 +0000)]
sync

6 years agoadd usb id for TP-LINK TL-WN722N v2
benno [Thu, 14 Dec 2017 09:22:16 +0000 (09:22 +0000)]
add usb id for TP-LINK TL-WN722N v2
ok deraadt@ phessler@ kettenis@

6 years agoChange bcopy to memcpy in the i386 version of the VIA PadLock driver.
fcambus [Thu, 14 Dec 2017 09:14:30 +0000 (09:14 +0000)]
Change bcopy to memcpy in the i386 version of the VIA PadLock driver.
It was done a while ago in the amd64 version.

OK mlarkin@, deraadt@, dlg@

6 years agozap trailing whitespace;
jmc [Thu, 14 Dec 2017 06:43:44 +0000 (06:43 +0000)]
zap trailing whitespace;

6 years agoRepair flushcache/standby operations to not convert AT_WAIT operations
deraadt [Thu, 14 Dec 2017 06:21:04 +0000 (06:21 +0000)]
Repair flushcache/standby operations to not convert AT_WAIT operations
to AT_POLL, which some chip driver underneath cannot handle.
tested by bluhm also

6 years agofcntl(F_SETFL) invokes the FIONBIO and FIOASYNC ioctls internally, so
guenther [Thu, 14 Dec 2017 03:30:43 +0000 (03:30 +0000)]
fcntl(F_SETFL) invokes the FIONBIO and FIOASYNC ioctls internally, so
the memory devices (/dev/null, /dev/zero, etc) need to permit them.

problem noted, tweak, and testing by jeremy@
ok deraadt@

6 years agoi forgot to convert timeout_proc_barrier to cond_signal
dlg [Thu, 14 Dec 2017 02:42:18 +0000 (02:42 +0000)]
i forgot to convert timeout_proc_barrier to cond_signal

6 years agoi forgot to convert ifq_barrier_task to cond_signal.
dlg [Thu, 14 Dec 2017 02:40:51 +0000 (02:40 +0000)]
i forgot to convert ifq_barrier_task to cond_signal.

6 years agoreplace the bare sleep state handling in barriers with wait cond code
dlg [Thu, 14 Dec 2017 00:45:16 +0000 (00:45 +0000)]
replace the bare sleep state handling in barriers with wait cond code

6 years agoadd code to provide simple wait condition handling.
dlg [Thu, 14 Dec 2017 00:41:58 +0000 (00:41 +0000)]
add code to provide simple wait condition handling.

this will be used to replace the bare sleep_state handling in a
bunch of places, starting with the barriers.

6 years agoFix whitespace botch that snuck in.
krw [Wed, 13 Dec 2017 18:53:04 +0000 (18:53 +0000)]
Fix whitespace botch that snuck in.

6 years agoSimplifiy parser by not worrying about nesting 'interface <if> {}'
krw [Wed, 13 Dec 2017 18:45:08 +0000 (18:45 +0000)]
Simplifiy parser by not worrying about nesting 'interface <if> {}'
statements. They are silly but harmless and work fine.

6 years agoFix a softdep bug exposed by our recent changes to make reboot drop to read-only
beck [Wed, 13 Dec 2017 16:38:34 +0000 (16:38 +0000)]
Fix a softdep bug exposed by our recent changes to make reboot drop to read-only

The deadlock happens when softdep gets the same buffer in the BMSAFEMAP case
that it already called getdirtybuf() on and made busy at the top of the loop.
when this is the case, skip the BMSAFEMAP case and simply write the buffer
out at the bottom of the loop as always. This avoids calling getdirtybuf()
a second time on the same buffer we already took for exclusive use ourself
and have not yet written out.

While I'm in here add a KASSERT for the similar case above, which I don't
think can happen but we would deadlock in the same way if it does.

testing by and ok bluhm@

6 years agoFix array index by signed char; from martijn@
millert [Wed, 13 Dec 2017 16:07:54 +0000 (16:07 +0000)]
Fix array index by signed char; from martijn@

6 years agoFix sign compare warnings; OK martijn@
millert [Wed, 13 Dec 2017 16:06:34 +0000 (16:06 +0000)]
Fix sign compare warnings; OK martijn@

6 years agoEnable compiler warnings; OK martijn@
millert [Wed, 13 Dec 2017 16:06:05 +0000 (16:06 +0000)]
Enable compiler warnings; OK martijn@

6 years agoAdd support for the -d (-o debug) option to libfuse. Currently works for FUSE
helg [Wed, 13 Dec 2017 12:30:18 +0000 (12:30 +0000)]
Add support for the -d (-o debug) option to libfuse. Currently works for FUSE
file systems that call fuse_parse_cmdline(3), fuse_main(3) or
fuse_setup(3).

ok mpi@, jca@

6 years agoIf the list of templates 'o' passed to fuse_opt_parse(3) is NULL then
helg [Wed, 13 Dec 2017 12:23:48 +0000 (12:23 +0000)]
If the list of templates 'o' passed to fuse_opt_parse(3) is NULL then
the processing function should be called in the same way as if no match
was found.

ok mpi@

6 years agoFix stray return; hopefully this makes the internal PHY actually work now.
kettenis [Wed, 13 Dec 2017 10:38:06 +0000 (10:38 +0000)]
Fix stray return; hopefully this makes the internal PHY actually work now.

6 years agoSpacing from kshe59@zoho.eu.
mpi [Wed, 13 Dec 2017 08:59:02 +0000 (08:59 +0000)]
Spacing from kshe59@zoho.eu.

6 years agoSizes for free in route_output().
mpi [Wed, 13 Dec 2017 08:54:59 +0000 (08:54 +0000)]
Sizes for free in route_output().

From kshe59@zoho.eu.

6 years agoAdd 'bt' an alias for 'trace'.
mpi [Wed, 13 Dec 2017 08:34:04 +0000 (08:34 +0000)]
Add 'bt' an alias for 'trace'.

ok pirofti@

6 years agogetsockname(2) needs to be passed the length of the input struct.
patrick [Wed, 13 Dec 2017 08:27:06 +0000 (08:27 +0000)]
getsockname(2) needs to be passed the length of the input struct.

ok jca@

6 years agoreport Oracle as the vendor is the produce starts with ORCL,
dlg [Wed, 13 Dec 2017 00:12:03 +0000 (00:12 +0000)]
report Oracle as the vendor is the produce starts with ORCL,

makes it consistent with reporting Sun or Fujitsu based on produce
prefixes.

ok kettenis@

6 years agoAdd more Allwinner A80 clocks.
kettenis [Tue, 12 Dec 2017 22:31:44 +0000 (22:31 +0000)]
Add more Allwinner A80 clocks.

6 years agoFix pfloadanchors tests when running with obj directory.
bluhm [Tue, 12 Dec 2017 19:49:19 +0000 (19:49 +0000)]
Fix pfloadanchors tests when running with obj directory.
Remove unused file.

6 years agoUse bn_checkp() always; from kshe
otto [Tue, 12 Dec 2017 19:08:57 +0000 (19:08 +0000)]
Use bn_checkp() always; from kshe

6 years agoMinor cleanup from kshe
otto [Tue, 12 Dec 2017 19:07:10 +0000 (19:07 +0000)]
Minor cleanup from kshe

6 years agooptimize add, sub and mul; from kshe; ok tom@
otto [Tue, 12 Dec 2017 18:58:59 +0000 (18:58 +0000)]
optimize add, sub and mul; from kshe; ok tom@

6 years agoConsistently use .Va for "errno";
schwarze [Tue, 12 Dec 2017 18:41:44 +0000 (18:41 +0000)]
Consistently use .Va for "errno";
patch from Jan Stary <hans at stare dot cz>;
"I think it makes sense to speak about errno as a variable (.Va)" jca@.

6 years agoOnly trigger background scans while we are in RUN state, and do not update
stsp [Tue, 12 Dec 2017 15:57:11 +0000 (15:57 +0000)]
Only trigger background scans while we are in RUN state, and do not update
a node's RSSI info while we are still in INIT state.

ok phessler@

6 years agoMake ieee80211_chan2ieee() panic if a bogus channel pointer is detected.
stsp [Tue, 12 Dec 2017 15:52:49 +0000 (15:52 +0000)]
Make ieee80211_chan2ieee() panic if a bogus channel pointer is detected.
ok patrick@

6 years agoMake IEEE80211_CHAN_ANYC be a NULL pointer instead of a pointer to 0xffff.
stsp [Tue, 12 Dec 2017 15:50:39 +0000 (15:50 +0000)]
Make IEEE80211_CHAN_ANYC be a NULL pointer instead of a pointer to 0xffff.
Should speed up debugging.
ok phessler patrick

6 years agold.so's syscall _dl_* API/ABI doesn't reurn errno, but -errno.
deraadt [Tue, 12 Dec 2017 15:33:34 +0000 (15:33 +0000)]
ld.so's syscall _dl_* API/ABI doesn't reurn errno, but -errno.
Reviewing behaviour artifacts with pledge, I discover a close(-ENOSYS)..
ok guenther

6 years agoCreate a persistent umac128.c source file: #define the output size and
naddy [Tue, 12 Dec 2017 15:06:12 +0000 (15:06 +0000)]
Create a persistent umac128.c source file: #define the output size and
the name of the entry points for UMAC-128 before including umac.c.
Idea from FreeBSD.
ok dtucker@

6 years agoDon't dereference IEEE80211_CHAN_ANYC pointer in ieee80211_node_checkrssi().
stsp [Tue, 12 Dec 2017 13:58:19 +0000 (13:58 +0000)]
Don't dereference IEEE80211_CHAN_ANYC pointer in ieee80211_node_checkrssi().

Problem reported by Gregoire Jadi on bugs@

6 years agoAllow interfaces that aren't SCANNALLBAND drivers to benefit from the
phessler [Tue, 12 Dec 2017 13:38:10 +0000 (13:38 +0000)]
Allow interfaces that aren't SCANNALLBAND drivers to benefit from the
strongest received signal.

OK stsp@

6 years agoFix 2 bugs introduced by previous.
martijn [Tue, 12 Dec 2017 12:52:01 +0000 (12:52 +0000)]
Fix 2 bugs introduced by previous.
Pointed out by kshe59 <at> zoho <dot> eu

OK millert@

6 years agoNuke some forward-only struct's and functions and functions thereby
krw [Tue, 12 Dec 2017 12:33:36 +0000 (12:33 +0000)]
Nuke some forward-only struct's and functions and functions thereby
made empty. Found by new ctfconv(1) feature and validated by clang.

ok mpi@

6 years agoDocument change in the default shell prompts.
tb [Tue, 12 Dec 2017 11:34:38 +0000 (11:34 +0000)]
Document change in the default shell prompts.

Discussed with and ok jmc

6 years agoRemove unused variable defined with an unexisting type.
mpi [Tue, 12 Dec 2017 11:18:32 +0000 (11:18 +0000)]
Remove unused variable defined with an unexisting type.

Found with ctfconv(1).

ok jsg@, dlg@

6 years agospace required between macro arg and punctuation;
jmc [Tue, 12 Dec 2017 11:11:18 +0000 (11:11 +0000)]
space required between macro arg and punctuation;

6 years agoFix typo. Unbreaks building a kernel on arm64/clang.
kettenis [Tue, 12 Dec 2017 10:25:39 +0000 (10:25 +0000)]
Fix typo.  Unbreaks building a kernel on arm64/clang.

6 years agoAvoid undefined behaviour in rorate_left() macro. From NetBSD via FreeBSD.
kettenis [Tue, 12 Dec 2017 10:06:45 +0000 (10:06 +0000)]
Avoid undefined behaviour in rorate_left() macro.  From NetBSD via FreeBSD.
Makes gas work when compiled with clang.

ok patrick@, millert@

6 years agostray , snuck in
deraadt [Tue, 12 Dec 2017 07:55:36 +0000 (07:55 +0000)]
stray , snuck in

6 years agospacing
deraadt [Tue, 12 Dec 2017 07:47:58 +0000 (07:47 +0000)]
spacing

6 years agosync
deraadt [Tue, 12 Dec 2017 01:13:14 +0000 (01:13 +0000)]
sync

6 years agopledge()'s 2nd argument becomes char *execpromises, which becomes the
deraadt [Tue, 12 Dec 2017 01:12:34 +0000 (01:12 +0000)]
pledge()'s 2nd argument becomes char *execpromises, which becomes the
pledge for a new execve image immediately upon start.  Also introduces
"error" which makes violations return -1 ENOSYS instead of killing the
program ("error" may not be handed to a setuid/setgid program, which
may be missing/ignoring syscall return values and would continue with
inconsistant state)
Discussion with many
florian has used this to improve the strictness of a daemon

6 years agoFix the behavior of preferring weaker-but-still-good 5Ghz APs over
jcs [Tue, 12 Dec 2017 00:24:21 +0000 (00:24 +0000)]
Fix the behavior of preferring weaker-but-still-good 5Ghz APs over
2Ghz APs because the 5Ghz band is generally less saturated.

The previous implementation was dependent upon the order of walking
APs.

ok stsp

6 years agoInclude hostname in shell prompts by default
tb [Tue, 12 Dec 2017 00:18:58 +0000 (00:18 +0000)]
Include hostname in shell prompts by default

With tmux, ssh and vmd, we tend to open shells on many different hosts
simultaneously and the default prompts '$ ' and '# ' for {,k}sh as well
as  '% ' and '# ' for csh become dangerous: it's very easy to issue a
command on the wrong host.

This can easily be avoided by displaying the hostname in the prompt.
Everything beyond "hostname{$,#,%} " is going to be a matter of taste,
so we left it at that. If you use an FQDN, only the first part (the
output of 'hostname -s') will be printed.

requested by and ok deraadt; mostly positive feedback many
ok anton, brynet, bcallah and others

6 years agoThe code can be simplified by using clock_gettime(2)'s CLOCK_REALTIME
tb [Mon, 11 Dec 2017 23:33:44 +0000 (23:33 +0000)]
The code can be simplified by using clock_gettime(2)'s CLOCK_REALTIME
instead of gettimeofday(2).

From Scott Cheloha, ok jca

6 years agoProper do {} while (0) idiom in TIMESPEC_TO_TIMEVAL/TIMEVAL_TO_TIMESPEC
jca [Mon, 11 Dec 2017 23:31:16 +0000 (23:31 +0000)]
Proper do {} while (0) idiom in TIMESPEC_TO_TIMEVAL/TIMEVAL_TO_TIMESPEC

From Scott Cheloha, ok tb@

6 years agoImplement support for the "next-generation" clock bindings for the
kettenis [Mon, 11 Dec 2017 23:24:58 +0000 (23:24 +0000)]
Implement support for the "next-generation" clock bindings for the
Allwinner A80.

6 years agoOmit the PMKID count field from RSN information elements (IE) if the PMKID
stsp [Mon, 11 Dec 2017 22:23:00 +0000 (22:23 +0000)]
Omit the PMKID count field from RSN information elements (IE) if the PMKID
list has zero elements and PMKID would be the last field in the RSN IE.

This is correct as per 802.11-2012 8.4.2.27.1 and aligns net80211 code with
behaviour of bwfm(4) firmware, unblocking further progress in that driver.

ok patrick@ phessler@

6 years agoDisable DIOCCACHESYNC code, which I believe does the opposite
deraadt [Mon, 11 Dec 2017 17:13:34 +0000 (17:13 +0000)]
Disable DIOCCACHESYNC code, which I believe does the opposite
and can cause pending IO's on wd(4) to be thrown away.  Still
trying to find a solution.

6 years agoFormat the vnode lists of ddb show mount properly in columns.
bluhm [Mon, 11 Dec 2017 14:11:22 +0000 (14:11 +0000)]
Format the vnode lists of ddb show mount properly in columns.
OK krw@

6 years agoFix and change y command in the following ways:
martijn [Mon, 11 Dec 2017 13:25:57 +0000 (13:25 +0000)]
Fix and change y command in the following ways:
- When 'n' is used as a delimiter escaping 'n' will remain a newline
  instead of becoming a 'n' character. This is how POSIX specifies how this
  should work. Other implementations tested also do this wrong.
- '[' and maybe other characters are not special during the parsing of the
  y command and don't need to be matched or treated special in any way.
- POSIX specifies that a backslash followed by anything other than the
  delimiter, 'n', and another backslash, as well as repeating characters in
  string1 are unspecified. Since the various implementations handle these
  situations in opposing ways choose to error out on them to prevent people
  falling into the pitfall of expecting identical behaviour on various
  implementations.

Inspired by the sed.1 patch by kshe59 <at> zoho <dot> eu
Feedback and OK millert@
Manpage bits OK jmc@

6 years agosscanf(3) is now used to parse templates that contain format specifiers
helg [Mon, 11 Dec 2017 12:38:54 +0000 (12:38 +0000)]
sscanf(3) is now used to parse templates that contain format specifiers
(e.g. %u, %o) other than %s. This aligns libfuse with the Linux reference
implementation.

ok mpi@

6 years agoUpdate to fuse_opt_parse(3) so that all option templates are now matched for
helg [Mon, 11 Dec 2017 12:31:00 +0000 (12:31 +0000)]
Update to fuse_opt_parse(3) so that all option templates are now matched for
the supplied option. This allows the following templates to be supplied to set
multiple members of a struct at the same time. e.g.

#define FUSE_LIB_OPT(t, p, v) { t, offsetof(struct fuse_config, p), v }

static const struct fuse_opt fuse_lib_opts[] = {
      FUSE_LIB_OPT("gid=",      set_gid, 1),
      FUSE_LIB_OPT("gid=%u",        gid, 0),
      FUSE_OPT_END
};

If "-ogid=1000" is passed to fuse_opt_parse(3) it will set both:

fuse_config.set_gid=1
fuse_config.gid=1000

ok mpi@

6 years agoThe fuse_opt_match(3) library function does not match options correctly.
helg [Mon, 11 Dec 2017 12:01:55 +0000 (12:01 +0000)]
The fuse_opt_match(3) library function does not match options correctly.
libfuse supports option templates of the following form that can be used
to automatically parse arguments supplied on the command line.

"-p "       argument that takes an option e.g -p 22 or -p22
"-p %x"     argument that takes an option parsed like sscanf(3)
"cache=yes" matches -ocache=yes or -o cache=yes
"cache=%s"  matches -ocache=<string> or -o cache=<string>
"cache="    matches same as above but value is passed to option proc
"noatime"   matches -onoatime or -o atime

For example, it does not match options of the form "-p 22" or
"cache=yes" to the corresponding templates "-p " and "cache=yes".  This
patch fixes that and updates the regression tests accordingly.

ok mpi@

6 years agouse cmp in a loop instead of diff -N to compare directories. The former
dtucker [Mon, 11 Dec 2017 11:41:56 +0000 (11:41 +0000)]
use cmp in a loop instead of diff -N to compare directories. The former
works on more platforms for Portable.

6 years agobump to 2.7.0
bcook [Mon, 11 Dec 2017 11:04:04 +0000 (11:04 +0000)]
bump to 2.7.0

6 years agofix the description of delete-non-matching-lines;
jmc [Mon, 11 Dec 2017 07:27:07 +0000 (07:27 +0000)]
fix the description of delete-non-matching-lines;
from mazocomp

6 years agohttp://repzret.org/p/repzret/
deraadt [Mon, 11 Dec 2017 05:48:01 +0000 (05:48 +0000)]
http://repzret.org/p/repzret/
My read of this:  Long time ago (Think Conan, not dinasaurs) during the race
to make speedier processors, a cpu vendor built a pipeline with a bad stall,
and proposed a tremendously hasky workaround.  A wizard adopted this into his
perl scroll, and failed to reflect later when no compiler adopted the practice.
This relic remains at the tail end of some functions in OpenSSL as
".byte 0xf3,0xc3".  Banish it straight to hell.
ok mlarkin, others also stared blankly

6 years agoIn uvm Chuck decided backing store would not be allocated proactively
deraadt [Mon, 11 Dec 2017 05:27:40 +0000 (05:27 +0000)]
In uvm Chuck decided backing store would not be allocated proactively
for blocks re-fetchable from the filesystem.  However at reboot time,
filesystems are unmounted, and since processes lack backing store they
are killed. Since the scheduler is still running, in some cases init is
killed... which drops us to ddb [noted by bluhm].  Solution is to convert
filesystems to read-only [proposed by kettenis]. The tale follows:
sys_reboot() should pass proc * to MD boot() to vfs_shutdown() which
completes current IO with vfs_busy VB_WRITE|VB_WAIT, then calls VFS_MOUNT()
with MNT_UPDATE | MNT_RDONLY, soon teaching us that *fs_mount() calls a
copyin() late... so store the sizes in vfsconflist[] and move the copyin()
to sys_mount()... and notice nfs_mount copyin() is size-variant, so kill
legacy struct nfs_args3.  Next we learn ffs_mount()'s MNT_UPDATE code is
sharp and rusty especially wrt softdep, so fix some bugs adn add
~MNT_SOFTDEP to the downgrade.  Some vnodes need a little more help,
so tie them to &dead_vnops.

ffs_mount calling DIOCCACHESYNC is causing a bit of grief still but
this issue is seperate and will be dealt with in time.
couple hundred reboots by bluhm and myself, advice from guenther and
others at the hut

6 years agoSergey Bronnikov's code coverage analysis shows that a few more code paths
tb [Mon, 11 Dec 2017 01:11:12 +0000 (01:11 +0000)]
Sergey Bronnikov's code coverage analysis shows that a few more code paths
could be exercised. Add a few tests to do just that. The wDn test is
currently disabled, as it will only pass after a commit to jot.c.

6 years agoUse correct mask to derive portid from "reg" property in cpu_match.
kettenis [Mon, 11 Dec 2017 00:15:50 +0000 (00:15 +0000)]
Use correct mask to derive portid from "reg" property in cpu_match.
Use cpu_myid() since it makes the coe more obvious.

6 years agomore 0xcc, in data. There are i386 machines without NX, so this change
deraadt [Sun, 10 Dec 2017 21:44:07 +0000 (21:44 +0000)]
more 0xcc, in data. There are i386 machines without NX, so this change
isn't a no-op
ok mlarkin

6 years agoStop running iwm(4) devices in "continuous active mode (CAM)".
stsp [Sun, 10 Dec 2017 20:34:41 +0000 (20:34 +0000)]
Stop running iwm(4) devices in "continuous active mode (CAM)".

Instead, enable device-level power saving which apparently allows
Tx/Rx RF circuitry to be switched off while inactive to save some power.
Turns out CAM is meant for debugging purposes, not normal operation.

NB: This has nothing to do with 802.11 power saving.

Tested by myself and phessler. There is no visible behaviour change.
ok deraadt@ phessler@

6 years agossh/lib hasn't worked towards our code-sharing goals for a quit while,
deraadt [Sun, 10 Dec 2017 19:37:57 +0000 (19:37 +0000)]
ssh/lib hasn't worked towards our code-sharing goals for a quit while,
perhaps it is too verbose?  Change each */Makefile to specifying exactly
what sources that program requires, compiling it seperate.  Maybe we'll
iterate by sorting those into seperatable chunks, splitting up files
which contain common code + server/client specific code, or whatnot. But
this isn't one step, or we'd have done it a long time ago..
ok dtucker markus djm

6 years agoadd #ifndef SMALL to slaacd.c as needed to fix 'make release'
stsp [Sun, 10 Dec 2017 17:34:05 +0000 (17:34 +0000)]
add #ifndef SMALL to slaacd.c as needed to fix 'make release'

6 years agoAdd support for the internal PHY on the Allwinner H3. From Stephen Graf.
kettenis [Sun, 10 Dec 2017 12:28:37 +0000 (12:28 +0000)]
Add support for the internal PHY on the Allwinner H3.  From Stephen Graf.

6 years agoFix MDIO_CMD register bit definitions. From Stepen Graf.
kettenis [Sun, 10 Dec 2017 11:58:15 +0000 (11:58 +0000)]
Fix MDIO_CMD register bit definitions.  From Stepen Graf.

6 years agoMove SB_SPLICE, SB_WAIT and SB_SEL to `sb_flags', serialized by solock().
mpi [Sun, 10 Dec 2017 11:31:54 +0000 (11:31 +0000)]
Move SB_SPLICE, SB_WAIT and SB_SEL to `sb_flags', serialized by solock().

SB_KNOTE remains the only bit set on `sb_flagsintr' as it is set/unset in
contexts related to kqueue(2) where we'd like to avoid grabbing solock().

While here add some KERNEL_LOCK()/UNLOCK() dances around selwakeup() and
csignal() to mark which remaining functions need to be addressed in the
socket layer.

ok visa@, bluhm@

6 years agoRemove outdated comment and trailing spaces.
mpi [Sun, 10 Dec 2017 11:25:18 +0000 (11:25 +0000)]
Remove outdated comment and trailing spaces.

From kshe59@zoho.eu