anton [Thu, 6 May 2021 12:55:20 +0000 (12:55 +0000)]
Unlock lseek(2).
In August 2019 I tried to unlock lseek which failed since the vnode lock
could not be acquired without holding the kernel lock back then.
claudio@ recently made it possible to acquire a vnode lock without
holding the kernel lock. The kernel lock is still required around
VOP_GETATTR() as the underlying file system implementations are not
MP-safe.
ok claudio@
lum [Thu, 6 May 2021 12:44:21 +0000 (12:44 +0000)]
Add a number to parameters for ewprintf() via beeping.
mvs [Thu, 6 May 2021 11:29:34 +0000 (11:29 +0000)]
Kill pfkeyv2_parsemessage() declaration which is absolutely useless
here since it's declared in net/pfkeyv2.h.
Also kill unused RETURN_EINVAL() macro.
ok mpi@
mpi [Thu, 6 May 2021 09:33:22 +0000 (09:33 +0000)]
Refactor routines to stop/unstop processes and save the corresponding signal.
- Move the "hack" involving P_SINTR to avoid grabbing the SCHED_LOCK()
recursively closer to where it is necessary, in proc_stop()
- Introduce proc_unstop(), the symmetric routine to proc_stop(), which
manipulates `ps_xsig' and use it whenever a SSTOPed thread needs to be
awaken.
- Manipulate `ps_xsig' only in proc_stop/unstop()
ok kettenis@
claudio [Thu, 6 May 2021 09:23:42 +0000 (09:23 +0000)]
export [ none | default-route ] changes are not handled by reload.
claudio [Thu, 6 May 2021 09:21:35 +0000 (09:21 +0000)]
It is no longer required to reset a session when export is changed.
stsp [Thu, 6 May 2021 09:19:28 +0000 (09:19 +0000)]
Make iwx(4) install CCMP keys to hardware from a task context to
wait for confirmation from the firmware before setting link UP.
Tested by Hrvoje, dv, and myself.
claudio [Thu, 6 May 2021 09:18:54 +0000 (09:18 +0000)]
Improve reload behaviour of RDE peer flags and export_type.
Add an extra reload barrier (IMSG_RECONF_DRAIN) to the sync of the peer
config from the session engine to the rde. Necessary to ensure that the
peer config is up to date in the RDE before hitting reconfiguration.
Store the export_type and the peer flags outside of peer->conf. Adjust all
users of these two fields so they only look at the copies in peer.
During reload check the values with the peer->conf to check for changes.
If the export_type or the rde evaluate or transparent-as flags changed
flush the Adj-RIB-Out for that peer and in a 2nd step rebuild the RIB from
scratch. This results in a lot of UPDATE churn but these configs are not
altered often.
Fix multiple issues in the rde_softreconfig_in_done handler that resulted
in multiple runs of the out stage of the softreconfig pipeline.
OK benno@
claudio [Thu, 6 May 2021 07:35:22 +0000 (07:35 +0000)]
Simplify file handling. There is no reason to use O_NONBLOCK on regular
files since they will never "block". Remove the UPLOAD_READ_LOCAL state
and inline the meta data check into pre_file().
Plug one memory leak and cleanup code a bunch.
OK benno@
claudio [Thu, 6 May 2021 07:29:59 +0000 (07:29 +0000)]
More code cleanup
OK florian@ benno@
lum [Thu, 6 May 2021 07:16:24 +0000 (07:16 +0000)]
Give parse error if character found between blocks.
jsg [Thu, 6 May 2021 04:09:41 +0000 (04:09 +0000)]
enable dwmmc(4)
dv [Wed, 5 May 2021 21:33:11 +0000 (21:33 +0000)]
Refactor vm_instance to return error value directly.
vmd(8)'s vm_instance function set unsupported errno values. Change the
api to directly return an error (either errno or custom vmd error).
"go for it" -mlarkin@
jsing [Wed, 5 May 2021 19:52:00 +0000 (19:52 +0000)]
Replace DTLS w_epoch with epoch from TLSv1.2 record layer.
ok inoguchi@ tb@
kettenis [Wed, 5 May 2021 19:26:51 +0000 (19:26 +0000)]
The StarFive JH7100 SoC found on the BeagleV beta boards has most of
its peripherals hooked up through a bus that doesn't maintain cache
coherency. So in order to use DMA we will need to flush the L2 caches
before/after a DMA tranfer. Add a driver for the L2 cache controller
for these SoCs and infrastructure to do the necessary cache maintenance.
Since this particular L2 cache controller needs physical addresses, this
makes the bus_dma(4) code deviate from its arm64 counterpart.
ok drahn@
job [Wed, 5 May 2021 17:25:44 +0000 (17:25 +0000)]
Emit an integer instead of a string in JSON output
We added the "AS123" format because this is what the other tools did
and there was the goal to have equal output. However, many in the
community have voiced complaints about having to do string conversions.
OK deraadt@ claudio@
job [Wed, 5 May 2021 17:24:00 +0000 (17:24 +0000)]
Clarify -n behavior
Input from John Heasley
OK claudio@
visa [Wed, 5 May 2021 15:29:19 +0000 (15:29 +0000)]
Remove unneeded tlb_set_gbase() that was used with R8000.
Pointed out by miod@
kettenis [Wed, 5 May 2021 14:13:57 +0000 (14:13 +0000)]
whitespace
jsg [Wed, 5 May 2021 13:28:56 +0000 (13:28 +0000)]
use fence iorw,iorw for bus_space_barrier()
ok kettenis@
kettenis [Wed, 5 May 2021 13:12:26 +0000 (13:12 +0000)]
Sync with arm64 version.
ok jsg@
claudio [Wed, 5 May 2021 12:34:12 +0000 (12:34 +0000)]
Document new reload behaviour. From Ashton Fagg
OK jmc@
kettenis [Wed, 5 May 2021 12:02:21 +0000 (12:02 +0000)]
Fix definition of GICD_TYPER_LPIS.
ok patrick@
sthen [Wed, 5 May 2021 11:49:17 +0000 (11:49 +0000)]
slight tidy-up of /etc/services:
- remove a few UDP entries for protocols that are TCP-only
- drop some obsolete protocols
- move smtps/465 to the standards section (rfc8314)
- move the talk about IANA's "reserve for both UDP/TCP even when you only
use one" policy from a comment in /etc/services to the manual, and talk
about how an entry in /etc/services prevents the associated port from
being used for dynamic ports (via net.inet.udp|tcp.baddynamic sysctl).
ok phessler@ florian@
claudio [Wed, 5 May 2021 10:28:11 +0000 (10:28 +0000)]
Improve the rde evaluate all test case by doing a withdraw of a prefix
that is hidden (but sent to one system because of rde evaluate all).
jsing [Wed, 5 May 2021 10:05:27 +0000 (10:05 +0000)]
Rewrite TLSv1.2 key block handling.
For TLSv1.2 a single key block is generated, then partitioned into
individual secrets for use as IVs and keys. The previous implementation
splits this across two functions tls1_setup_key_block() and
tls1_change_cipher_state(), which means that the IV and key sizes have to
be known in multiple places.
This implementation generates and partitions the key block in a single
step, meaning that the secrets are then simply handed out when requested.
ok inoguchi@ tb@
claudio [Wed, 5 May 2021 10:02:52 +0000 (10:02 +0000)]
All exabgp configs changed to the c code version of the api-exabgp code.
jsg [Wed, 5 May 2021 09:17:19 +0000 (09:17 +0000)]
Match on snps,dw-mshc in dwmmc(4) and use clock-frequency for clkbase if
the "ciu" clock is missing as mentioned in the devicetree binding.
ok kettenis@
mpi [Wed, 5 May 2021 07:29:00 +0000 (07:29 +0000)]
Unlock top part of the fault handler.
ok kettenis@
lum [Wed, 5 May 2021 06:12:23 +0000 (06:12 +0000)]
Check the characters preceeding and following quotes.
stsp [Wed, 5 May 2021 05:47:11 +0000 (05:47 +0000)]
Enable detailed reports about firmware errors in iwm(4) for the time being.
I am getting reports about firmware errors which may be related to Tx agg.
drahn [Wed, 5 May 2021 04:52:39 +0000 (04:52 +0000)]
riscv64 binutils 'support'
Enable just enough of binutils to be a functional compilation system
with llvm doing the heavy lifting.
With corrections suggested by reviewers.
ok jsg@ kettenis@
asou [Wed, 5 May 2021 03:03:16 +0000 (03:03 +0000)]
Fix backtrace command with kernel core.
ok mpi@
jsg [Wed, 5 May 2021 01:28:38 +0000 (01:28 +0000)]
riscv: Assert that SUM is not set in SSTATUS for exceptions.
From John Baldwin
6a3a6fe34bf36b6e745b3e9ad1a991de057729c7 in FreeBSD
ok kettenis@ mlarkin@
jsg [Wed, 5 May 2021 01:24:57 +0000 (01:24 +0000)]
riscv: Clear SUM in SSTATUS for supervisor mode exceptions.
From John Baldwin
753bcca440a4d2c95f48536b586131b84c0bb87e in FreeBSD
ok kettenis@ mlarkin@
jsg [Wed, 5 May 2021 00:53:08 +0000 (00:53 +0000)]
rename trap.S exception.S and trap_machdep.c trap.c to match other archs
ok kettenis@
kurt [Wed, 5 May 2021 00:04:49 +0000 (00:04 +0000)]
Add Radxa Rock Pi N10.
dtucker [Tue, 4 May 2021 22:53:52 +0000 (22:53 +0000)]
Don't pass NULL as a string in debugging as it does not work on some
platforms in -portable. ok djm@
bluhm [Tue, 4 May 2021 21:57:15 +0000 (21:57 +0000)]
Reorder the integer sysctl functions. Then the traditional 4.4BSD
comment 'As above...' makes sense again. Improve comments for
sysctl_int_bounded() and sysctl_bounded_arr().
OK gnezdo@ mvs@
naddy [Tue, 4 May 2021 21:03:30 +0000 (21:03 +0000)]
shell scripts should use getopts instead of getopt
Add a prominent deprecation notice to getopt.1.
Add examples of the getopts idiom to sh.1 and ksh.1.
Requested by and ok espie@, ok jmc@
bluhm [Tue, 4 May 2021 19:04:56 +0000 (19:04 +0000)]
As the unbouded feature in sysctl_int_bounded() is no longer used,
remove it. This also fixes a defective check of the dynamic boundary
in sysctl_sysvshm().
OK mvs@ gnezdo@
kettenis [Tue, 4 May 2021 19:02:52 +0000 (19:02 +0000)]
sigpending(2) will never fail. Optimize the syscall stub accordingly like
we do on other architectures.
ok mpi@
tb [Tue, 4 May 2021 18:20:05 +0000 (18:20 +0000)]
Rename shutdown_all() to shutdown_peers() for consistency.
cheloha [Tue, 4 May 2021 18:14:58 +0000 (18:14 +0000)]
syscalls.c, init_sysent.c, syscall.h, syscallargs.h: regen
Regen after unlocking getitimer(2) and setitimer(2).
ok anton@, mpi@
cheloha [Tue, 4 May 2021 18:10:24 +0000 (18:10 +0000)]
getitimer(2), setitimer(2): unlock syscalls
With the changes in kern_time.c v1.150, neither getitimer(2) nor
setitimer(2) need the kernel lock anymore.
ok anton@, mpi@
kettenis [Tue, 4 May 2021 16:38:06 +0000 (16:38 +0000)]
The clock on RISC-V is architectural, so we really don't need the
whole abstraction layer to support multiple timers. And we don't
really need a separate driver. Replace timer(4) with code based on
the powerpc64 implementation of the randomized statclock code.
Fixes hangs seen on real hardware.
ok jsg@, drahn@
aoyama [Tue, 4 May 2021 14:05:12 +0000 (14:05 +0000)]
Fix 2nd and 3rd arguments' cast in atomic_cas_ptr().
This fixes compile errors (actually warnings) on m88k in sys/net/pf.c
revision 1.1116 changes.
Diff from Miod Vallat, tested on GENERIC and GENERIC.MP by me.
bluhm [Tue, 4 May 2021 13:24:49 +0000 (13:24 +0000)]
Create memory pressure in test. Allocate heap and stack in child
processes and threads. Then exit has more work to do.
kettenis [Tue, 4 May 2021 12:46:28 +0000 (12:46 +0000)]
Add a boot hart ID check in the function that matches secondary CPUs
as well.
ok jsg@
dv [Tue, 4 May 2021 10:48:51 +0000 (10:48 +0000)]
gzread(3) doesn't always set errno, so use gzerror(3)
Compression errors from libz don't set errno.
OK mlarkin@
dv [Tue, 4 May 2021 10:42:51 +0000 (10:42 +0000)]
Move unused task queue stuff to the attic.
Was added about 4 years ago, but hasn't been used and linked into
the build. Discussed with dlg@ and mlarkin@.
mlarkin@: "Let's remove for now..."
dv [Tue, 4 May 2021 10:36:01 +0000 (10:36 +0000)]
Init debug logging state before attempting to log.
Error messages related to bad configuration were not flushing to
stderr.
OK mlarkin@
espie [Tue, 4 May 2021 10:19:28 +0000 (10:19 +0000)]
okay, prevent pkg_* from looking into /usr/local BUT special-case quirks
mvs [Tue, 4 May 2021 09:28:04 +0000 (09:28 +0000)]
Initialize `ipsec_policy_pool' within pfkey_init() instead of doing that
in runtime within pfkeyv2_send(). Also set it's interrupt protection
level to IPL_SOFTNET.
ok bluhm@ mpi@
mvs [Tue, 4 May 2021 09:27:22 +0000 (09:27 +0000)]
Remove unused `spd_tables' declaration.
ok bluhm@ mpi@
claudio [Tue, 4 May 2021 09:27:09 +0000 (09:27 +0000)]
More comment changes to reflect reality. No functional change.
claudio [Tue, 4 May 2021 09:21:05 +0000 (09:21 +0000)]
Update comment to match reality.
espie [Tue, 4 May 2021 08:53:15 +0000 (08:53 +0000)]
not yet, need to figure out how to fix quirks first
espie [Tue, 4 May 2021 08:41:03 +0000 (08:41 +0000)]
and do the same thing to pkg_mklocatedb
espie [Tue, 4 May 2021 08:39:19 +0000 (08:39 +0000)]
prevent the base pkg tools from looking under /usr/local
claudio [Tue, 4 May 2021 08:16:36 +0000 (08:16 +0000)]
Similar to rsync repo delay deletes for rrdp repos to after processing
all files. Now RRDP has a weak sync mechanism and therefor not all
unreferenced files can be removed, instead look at the list of removes
which were part of the delta processing and remove those files.
Warn and keep the file if a delta specifies to remove a file which is
actually still referenced.
OK benno@
jsg [Tue, 4 May 2021 06:32:58 +0000 (06:32 +0000)]
Check that fdt hart id matches boot hart id before associating an fdt
node with the primary cpu.
Prompted by the polarfire icicle where hart 0 is an mmuless e51 core.
ok drahn@ mlarkin@
drahn [Tue, 4 May 2021 04:26:00 +0000 (04:26 +0000)]
Remove cerror dependancy from riscv64 asm syscalls.
Directly update cerror as offset of thread pointer, with
optimizations on error brnaching
ok kettenis@
drahn [Tue, 4 May 2021 04:17:53 +0000 (04:17 +0000)]
riscv64 brk()/sbrk() implementations,
based off a combination of aarch64/powerpc64
ok kettenis@
inoguchi [Mon, 3 May 2021 23:44:05 +0000 (23:44 +0000)]
Use limits.h instead of sys/limits.h in dtlstest.c for portable
discussed and input from jsing@
inoguchi [Mon, 3 May 2021 23:42:04 +0000 (23:42 +0000)]
Modify regress ssl_get_shared_ciphers for portable
- Split out the intermediate path (../certs/) to Makefile
- Change 'shutdown' to 'shutdown_all'
ok tb@
kettenis [Mon, 3 May 2021 21:25:48 +0000 (21:25 +0000)]
Sync changes from arm64 version.
ok patrick@
tb [Mon, 3 May 2021 18:31:40 +0000 (18:31 +0000)]
Hook openssl-ruby test to regress tree
tb [Mon, 3 May 2021 18:21:00 +0000 (18:21 +0000)]
Add scaffold to run the ruby/openssl regression tests
This test depends on the ruby/ruby-openssl-tests port that bundles the
sources and tests of the Ruby OpenSSL gem below /usr/local. The Makefile
compiles the openssl.so shared object below obj/ that provides Ruby
bindings for the OpenSSL API. Once this is built, the regression tests are
run.
There are currently 4 failing tests, all related to the new verifier.
At least one libssl bug is hidden behind a pend. All this will hopefully be
fixed during this release cycle.
This adds a decent amount of test coverage without being overly expensive.
This way, regressions should be spotted during development so jeremy will
no longer have to chase and work around them.
Joint work with jeremy, positive feedback from bcook and jsing.
tb [Mon, 3 May 2021 14:51:47 +0000 (14:51 +0000)]
tweak one description to make it unique
tb [Mon, 3 May 2021 14:49:37 +0000 (14:49 +0000)]
Prefix the hybrid_corner_case test with test_ for consistency.
tb [Mon, 3 May 2021 14:48:10 +0000 (14:48 +0000)]
Exercise the point conversion bit for octet string representations
of points on secp256r1.
tb [Mon, 3 May 2021 14:46:18 +0000 (14:46 +0000)]
Add a test that exercises the point conversion bit of the octet
string representations of points on the binary curve sect571k1.
tb [Mon, 3 May 2021 14:42:45 +0000 (14:42 +0000)]
Fix corner case for compressed points on binary curves
Per X9.62 4.4.1.b., the compressed representation of a point with
zero x coordinate on a binary curve must have y_bit unset. Error
out in that case of ec_GF2m_set_compressed_coordinates() instead
of ignoring y_bit.
ok jsing
claudio [Mon, 3 May 2021 14:08:09 +0000 (14:08 +0000)]
When negotiating multiprotocol capabilities only fall ack to AID_INET when
no capability was sent to the peer (this happens if the multiprotocol
capability got disabled). It is possible that local and remote systems end
up with no shared AFI/SAFI pair. In this case the connection will not send
or should not receive any UPDATE messages.
The previous behaviour of falling back to AID_INET in that case can result
in problematic behaviour when sessions are missconfigured.
OK benno@, deraadt@
claudio [Mon, 3 May 2021 14:01:56 +0000 (14:01 +0000)]
Print the timestamps both formatted and as a time in seconds field in
the various JSON object that have time values.
OK benno@
lum [Mon, 3 May 2021 13:28:03 +0000 (13:28 +0000)]
When parsing a variable value within double quotes, allow parenthesis
to be accomodated for.
claudio [Mon, 3 May 2021 13:18:06 +0000 (13:18 +0000)]
Like in the session engine do not inline the addr2sa call into connect and
bind. The len argument is modified by addr2sa but is also used as argument
in the call and it is undefined if the value of len in connect is set to
the value "returned" by addr2sa().
Should fix connect issues seen on Linux system.
OK denis@
visa [Mon, 3 May 2021 13:11:40 +0000 (13:11 +0000)]
Make sdhc(4) attachment work on Zynq-7000.
OK kettenis@
lum [Mon, 3 May 2021 12:18:43 +0000 (12:18 +0000)]
When parsing a variable value within double quotes, allow an escaped
\" to be accomodated for. Also, move the variable structure to be
global in scope within mg.
stsp [Mon, 3 May 2021 11:58:51 +0000 (11:58 +0000)]
fix typo from previous commit
stsp [Mon, 3 May 2021 11:58:06 +0000 (11:58 +0000)]
Mention in CAVEATS that iwn(4) doesn't support 40MHz channels yet.
stsp [Mon, 3 May 2021 11:56:49 +0000 (11:56 +0000)]
iwm(4) supports Tx aggregation now.
kettenis [Mon, 3 May 2021 11:35:29 +0000 (11:35 +0000)]
Use the EFI memory map (if available) to determine available physical
memory. This brings the code closer to arm64 but some key differences
remain. The most notable difference is that the riscv64 currently uses
its own private direct map of physical memory. Therefore it needs to know
the RAM address range which we derive from the /memory node in the FDT.
The code also needs to work around some bugs/flaws in the firmware:
* Newer OpenSBI versions no longer add a "no-map" property to the
reserved memory block that covers the memory used by OpenSBI itself.
This makes it appear as EfiBootServicesData in the EFI memory map,
which means it is available for general use.
* The OpenSBI shipped with the beaglev prototype boards doesn't reserve
the memory used by OpenBSI at all.
The workaround for the first issue is to remove all reserved memory blocks
specified in the FDT. In its current implementation this may remove
too much memory on certain boards.
The workaround for the second issue is to remove 2MB before the memory
where the kernel lives. This workaround is fragile since it relies on
a specific memory layout. Hopefully the beaglev firmware gets fixed and
we can remove this hack.
ok jsg@
sthen [Mon, 3 May 2021 11:34:55 +0000 (11:34 +0000)]
remove old gcc/g++ binaries at update time; covers the most common case
where people will run into problems on amd64 now we don't build gcc.
(the gcc-lib files are already removed by bsd.rd upgrades, and gcc/g++
don't work without them).
jsg [Mon, 3 May 2021 08:53:25 +0000 (08:53 +0000)]
recognise a small number of riscv relocations in readelf
ok kettenis@
stsp [Mon, 3 May 2021 08:46:28 +0000 (08:46 +0000)]
Tweak the heuristic net80211 RA is using to decide whether enough
statistics have been gathered for a candidate Tx rate. The goal is
to avoid Tx rate choices that might turn out to be too optimistic.
In practice this only affects the case where we probe upwards. If the
current Tx rate starts seeing loss we will still scale down very quickly.
Based on a larger collection of patches by Christian Ehrhardt.
I have made stylistic tweaks for consistency.
Tested:
iwn 6205: stsp, Josh Grosse
iwm 7265: stsp
iwm 8265: Matthias Schmidt
iwm 9260: phessler
stsp [Mon, 3 May 2021 08:41:25 +0000 (08:41 +0000)]
Add 802.11n Tx aggregation support to iwm(4).
Makes packets go swoosh swoosh swoosh. Welcome to actual 802.11n!
Tested:
7260: dv, florian
7265: trondd, dv, landry, stsp
8260: bket
8265: Matthias Schmidt, stsp
9260: kettenis
9560: phessler, stsp
stsp [Mon, 3 May 2021 08:23:05 +0000 (08:23 +0000)]
work around an athn(4) device problem with bogus Michael MIC failures
Clients using Tx aggregation against an athn(4) hostap will send block ack
request control frames whenever they need to sync their Tx block ack window.
athn(4) dropped such frames due to bogus Michael MIC failures reported by
the hardware decryption engine. Ignore such failures for control frames in
order to fix athn(4) hostap mode against clients which use Tx aggregation.
Additionally, only report Michael MIC failures to the net80211 stack if the
offending client is actually using TKIP, which would also have prevented the
problem since we require CCMP as group cipher in our default configuration.
Problem reported and fix tested by kettenis@
espie [Mon, 3 May 2021 07:48:16 +0000 (07:48 +0000)]
thinko, noticed by jmc@
espie [Mon, 3 May 2021 07:21:15 +0000 (07:21 +0000)]
FETCH_CMD, perfect place to explain more about fetching ;)
jmc [Mon, 3 May 2021 07:09:26 +0000 (07:09 +0000)]
remove entries for sgi devices: xheart, owmac, and owserial
jsg [Mon, 3 May 2021 06:19:00 +0000 (06:19 +0000)]
change some commented vfp paths to riscv64 fpu equivalents
ok mlarkin@
ratchov [Mon, 3 May 2021 04:29:50 +0000 (04:29 +0000)]
If mode is not allowed in struct opt, then just play/record silence
This is similar to what we already do when device is opened and its
mode doesn't match requested mode. Besides adding consistency, this
change would allow client's opt structure to be changed dynamically.
jsg [Mon, 3 May 2021 03:45:40 +0000 (03:45 +0000)]
don't build gdb on riscv64
djm [Mon, 3 May 2021 00:16:45 +0000 (00:16 +0000)]
more debugging for UpdateHostKeys signature failures
drahn [Mon, 3 May 2021 00:04:31 +0000 (00:04 +0000)]
riscv64 is a LP64_ARCH, list it as such.
drahn [Sun, 2 May 2021 23:48:14 +0000 (23:48 +0000)]
riscv64 initiall installation notes (more of a skeleton).
naddy [Sun, 2 May 2021 22:32:30 +0000 (22:32 +0000)]
disable base-gcc on amd64; ok jca@ deraadt@
bluhm [Sun, 2 May 2021 22:10:13 +0000 (22:10 +0000)]
Put -stable template into #if 0 section of current newvers.sh.
OK deraadt@