openbsd
10 months agoAdd Quectel RM500Q to umb man page.
kevlo [Mon, 1 Jan 2024 13:04:35 +0000 (13:04 +0000)]
Add Quectel RM500Q to umb man page.

ok mglocker@

10 months agocopyright++;
jsg [Mon, 1 Jan 2024 07:00:18 +0000 (07:00 +0000)]
copyright++;

10 months agoIncrease datasize to 1536 MB for running llvm-tblgen on i386.
bluhm [Sun, 31 Dec 2023 16:05:50 +0000 (16:05 +0000)]
Increase datasize to 1536 MB for running llvm-tblgen on i386.
Fixes build in src/gnu/usr.bin/clang/include/llvm/AMDGPU.
OK semarie@

10 months agoAdd TCP Segmentation Offload (TSO) support for em(4). Following chip-sets
mglocker [Sun, 31 Dec 2023 08:42:33 +0000 (08:42 +0000)]
Add TCP Segmentation Offload (TSO) support for em(4).  Following chip-sets
are currently known to support TSO;  82575, 82576, 82580, I350, and I210.

Suggested by claudio@.  Feedback and testing from many on tech@.

OK bluhm@

10 months agoKNF nit
tb [Sun, 31 Dec 2023 07:19:13 +0000 (07:19 +0000)]
KNF nit

10 months agoSort the NIDs by name
tb [Sun, 31 Dec 2023 07:14:42 +0000 (07:14 +0000)]
Sort the NIDs by name

requested by jsing

10 months agoReplace the sorted extensions lookup with a switch
tb [Sun, 31 Dec 2023 07:10:50 +0000 (07:10 +0000)]
Replace the sorted extensions lookup with a switch

If all you have is OBJ_bsearch_(), everything looks like a nail. This
changes a binary search over a list of 12 elements with a lookup via
a switch.

switch suggested by claudio
ok jsing

10 months agoSprinkle a handfull of missing continue
tb [Sun, 31 Dec 2023 01:31:07 +0000 (01:31 +0000)]
Sprinkle a handfull of missing continue

10 months agoMake x509_issuer_cache_free_oldest() static
tb [Sat, 30 Dec 2023 18:26:13 +0000 (18:26 +0000)]
Make x509_issuer_cache_free_oldest() static

This is an internal function and you can't hold the required mutex
to call it anyway since that's internal, too.

10 months agoSome Australians don't like voids either
tb [Sat, 30 Dec 2023 18:24:09 +0000 (18:24 +0000)]
Some Australians don't like voids either

10 months agoOne more missing void was hiding here
tb [Sat, 30 Dec 2023 18:22:52 +0000 (18:22 +0000)]
One more missing void was hiding here

10 months agoSome BoringSSL devs spent too much time with C++
tb [Sat, 30 Dec 2023 18:06:59 +0000 (18:06 +0000)]
Some BoringSSL devs spent too much time with C++

10 months agoSet ixl(4) IXL_TX_PKT_DESCS to 8.
bluhm [Sat, 30 Dec 2023 17:52:27 +0000 (17:52 +0000)]
Set ixl(4) IXL_TX_PKT_DESCS to 8.

Mark Patruck has reported problems with ixl revision 1.90 TSO diff.
He uses ixl device passthrough from Linux via KVM to OpenBSD guest.
After a few hours of operation, interface locks up with oactive.
The problem also occures with TSO disabled, after the TSO diff had
been commited.  deraadt@ has seen similar problems with ixl interface
on sparc64.
Changing IXL_TX_PKT_DESCS back to the original value 8 fixes the
lockup and even TSO on the hardware still works.  FreeBSD and NetBSD
also use this value.  The 32 was copied from ix(4) TSO diff and is
not necessary for ixl(4).

debugged with jan@; lot of bisecting and testing by Mark Patruck
OK mglocker@ patrick@

10 months agoFix iwx(4) device info table entries for So+Hr devices.
stsp [Sat, 30 Dec 2023 16:55:44 +0000 (16:55 +0000)]
Fix iwx(4) device info table entries for So+Hr devices.

Some non-160MHz So+Hr devices were misdetected, causing iwx(4) to select
the wrong firmware image for them.

Patch by Miguel Landaeta

10 months agoImprove the RTKit code. This update brings us crashlog and syslog parsing
kettenis [Sat, 30 Dec 2023 13:13:11 +0000 (13:13 +0000)]
Improve the RTKit code.  This update brings us crashlog and syslog parsing
support as well as bug fixes that are needed to bring up the DCP.

ok patrick@

10 months agoProtect em(4) refill timeout with splnet.
bluhm [Sat, 30 Dec 2023 12:44:43 +0000 (12:44 +0000)]
Protect em(4) refill timeout with splnet.

From time to time "pkt->pkt_m == NULL" or "m != NULL" assertions
were hit in the em driver.  Stack trace shows that em refill timeout
was interrupted by em interrupt.  Doing em_rxfill() and em_rxeof()
simultaneously cannot be correct.  Protect softclock in em_rxrefill()
with splnet().

OK mglocker@

10 months agoAdd extended regress coverage for ASN.1 methods
tb [Sat, 30 Dec 2023 08:58:18 +0000 (08:58 +0000)]
Add extended regress coverage for ASN.1 methods

Validate that every alias resolves to a non-alias in one step and that
non-aliases have pkey_id == pkey_base_id, an info string and a pem_str.
They can be looked up by their pkey_id or pem_str.

Conversely, all these are false for aliases.

10 months agoFix two more unchecked EVP_PKEY_assign() calls
tb [Sat, 30 Dec 2023 06:25:56 +0000 (06:25 +0000)]
Fix two more unchecked EVP_PKEY_assign() calls

In SSL{_CTX}_use_RSAPrivateKey() switch from EVP_PKEY_assign_RSA() to
EVP_PKEY_set1_RSA() and hold on to the reference of the the pkey for
the duration of ssl_set_pkey(). Use single exit and other minor style
cleanups.

ok joshua jsing

10 months agofix previous: key -> parameter
tb [Fri, 29 Dec 2023 22:37:47 +0000 (22:37 +0000)]
fix previous: key -> parameter

10 months agoA .Xr to DSA_generate_parameters_ex() was lost accidentally
tb [Fri, 29 Dec 2023 19:19:48 +0000 (19:19 +0000)]
A .Xr to DSA_generate_parameters_ex() was lost accidentally

10 months agosync
tb [Fri, 29 Dec 2023 19:15:52 +0000 (19:15 +0000)]
sync

10 months agoMove DSA_generate_parameters.3 to DSA_generate_parameters_ex.3
tb [Fri, 29 Dec 2023 19:15:15 +0000 (19:15 +0000)]
Move DSA_generate_parameters.3 to DSA_generate_parameters_ex.3

10 months agoAdjust documentation for upcoming DSA_generate_parameters removal
tb [Fri, 29 Dec 2023 19:12:46 +0000 (19:12 +0000)]
Adjust documentation for upcoming DSA_generate_parameters removal

This removes any mention of DSA_generate_parameters in the manuals apart
from a comment that it is intentionally undocumented and adapts cross
references to DSA_generate_parameters_ex. The file itself will be moved
in a second step.

10 months agoameth_lib: zap trailing empty line
tb [Fri, 29 Dec 2023 19:00:31 +0000 (19:00 +0000)]
ameth_lib: zap trailing empty line

10 months agobump version
tb [Fri, 29 Dec 2023 18:52:11 +0000 (18:52 +0000)]
bump version

10 months agoeckey: adjust some variable names and unwrap function definitions
tb [Fri, 29 Dec 2023 18:49:06 +0000 (18:49 +0000)]
eckey: adjust some variable names and unwrap function definitions

ok jsing

10 months agoClean up old_ec_priv_decode()
tb [Fri, 29 Dec 2023 18:48:25 +0000 (18:48 +0000)]
Clean up old_ec_priv_decode()

As per usual. Stylistic adjustments and missing error check.

ok jsing

10 months agoClean up eckey_param_decode()
tb [Fri, 29 Dec 2023 18:47:47 +0000 (18:47 +0000)]
Clean up eckey_param_decode()

This aligns eckey's parameter decoding routine with the one of other
cipher abstractions: better variable names, single exit and add missing
check for EVP_PKEY_assign_EC_KEY().

ok jsing

10 months agoRework eckey_priv_decode()
tb [Fri, 29 Dec 2023 18:46:24 +0000 (18:46 +0000)]
Rework eckey_priv_decode()

Factor out the pubkey computation and bring it into more sensible form.
This removes lots of pointless setting of errors (twice) and makes the
code a bit easier on the eyes. Other than that perform some stylistic
cleanup like single exit and add an error check for EVP_PKEY_assign().

ok jsing

10 months agoMove a call to X509_ALGOR_get0() down a line
tb [Fri, 29 Dec 2023 18:45:39 +0000 (18:45 +0000)]
Move a call to X509_ALGOR_get0() down a line

10 months agoPass correct file to warnx()
tb [Fri, 29 Dec 2023 17:15:10 +0000 (17:15 +0000)]
Pass correct file to warnx()

We end up here only if mft1 == NULL, which can happen because file1 == NULL.
Use file2 instead because mft2 != NULL implies file2 != NULL.

ok job

10 months agoThere is no need to include sys/uio.h here.
claudio [Fri, 29 Dec 2023 16:02:29 +0000 (16:02 +0000)]
There is no need to include sys/uio.h here.

10 months agoFix a NULL access or use-after-free bug
job [Fri, 29 Dec 2023 14:35:43 +0000 (14:35 +0000)]
Fix a NULL access or use-after-free bug

This is a bandaid, the proc_parser_mft() is too complex and needs reworking

OK tb@

10 months agoUse a per cpu pool cache for pmap_pv_pool
jca [Fri, 29 Dec 2023 13:23:27 +0000 (13:23 +0000)]
Use a per cpu pool cache for pmap_pv_pool

Improves performance on my 8 cores box.  ok cheloha@ kettenis@

10 months agoNeuter the SSL_set_debug(3) API
tb [Fri, 29 Dec 2023 12:24:33 +0000 (12:24 +0000)]
Neuter the SSL_set_debug(3) API

The TLSv1.3 stack didn't support this in the first place, and in the legacy
stack it only added some dubious BIO_flush(3) calls. The sleep call between
SSL_read(3) and SSL_write(3) advertised in the comment next to the flag has
been a sleep call in the s_server since time immemorial, nota bene between
calls to BIO_gets(3). Anyway. This can all go and what remains will go with
the next major bump.

ok jsing

10 months agoGarbage collect the last users of SSL_set_debug(3)
tb [Fri, 29 Dec 2023 12:15:49 +0000 (12:15 +0000)]
Garbage collect the last users of SSL_set_debug(3)

This undocumented, incomplete public function has never done anything
useful. It will be removed from libssl. Removing it from openssl(1)
clears the way for this.

ok jsing

10 months agos_client: pause hasn't worked in ages. Just ignore it
tb [Fri, 29 Dec 2023 12:06:48 +0000 (12:06 +0000)]
s_client: pause hasn't worked in ages. Just ignore it

ok jsing

10 months agoThere is no default for the rtable login.conf capability.
claudio [Fri, 29 Dec 2023 11:57:38 +0000 (11:57 +0000)]
There is no default for the rtable login.conf capability.

If it is not set it will use the current rtable. It will not force every
login to the default (0) rtable. For that rtable should be set to 0.
OK schwarze@ a long time ago

10 months agoCleanup required headers form imsg.h.
claudio [Fri, 29 Dec 2023 11:48:47 +0000 (11:48 +0000)]
Cleanup required headers form imsg.h.

Right now only sys/queue.h is required to be included for imsg.h. The
only exception is if imsg_composev() is used, then sys/uio.h is needed
to access struct iovec.
OK tb@

10 months agoMake loopback interface counters MP safe.
bluhm [Fri, 29 Dec 2023 11:43:04 +0000 (11:43 +0000)]
Make loopback interface counters MP safe.

Create and use the MP safe version of the interface counters for
lo(4).  Input packets were counted twice.  As interface input queue
is already counting, remove input count in if_input_local().
Multicast and siplex packets are counted at the ethernet interface.
Add a comment that this not MP safe.

OK mvs@

10 months agoMove the EVP_PKEY_asn1_* API that will stay to evp/p_lib.c
tb [Fri, 29 Dec 2023 10:59:00 +0000 (10:59 +0000)]
Move the EVP_PKEY_asn1_* API that will stay to evp/p_lib.c

Most of these functions are only called from this file internally apart
from the pem_str lookups from pem/. In the next major bump we can then
remove asn/ameth_lib.c. Also move EVP_PKEY_ASN1_METHOD to evp_local.h.
While this is used to dispatch to various ASN.1 decoding routines, it
doesn't fit into asn1/ at all.

10 months agoZap some whitespace
tb [Fri, 29 Dec 2023 10:31:50 +0000 (10:31 +0000)]
Zap some whitespace

10 months agoReplace outdated comment on EVP_PKEY_asn1_find() with a todo item
tb [Fri, 29 Dec 2023 10:17:26 +0000 (10:17 +0000)]
Replace outdated comment on EVP_PKEY_asn1_find() with a todo item

10 months agoMove EVP_PKEY_asn1_add* to the end of the file
tb [Fri, 29 Dec 2023 10:08:44 +0000 (10:08 +0000)]
Move EVP_PKEY_asn1_add* to the end of the file

Also add a reminder to remove most of the public API in this file.

10 months agoSupport for "control" nodes was removed from the drm subsystem some time
kettenis [Fri, 29 Dec 2023 10:00:18 +0000 (10:00 +0000)]
Support for "control" nodes was removed from the drm subsystem some time
ago, but some code in drmopen() remained which means that opening a drm
device node with a minor that matches the range for the "control" nodes
will hit a kernel assertion.  A similar issue exists for "render" nodes
corresponding to a driver that only supports KMS (such as rkdrm(4)).

Add checks to see if the minor is valid and return ENXIO if that isn't the
case to prevent a kernel crash.

ok jsg@, miod@

10 months agoMove the EVP_MD block size accessor down
tb [Fri, 29 Dec 2023 07:22:47 +0000 (07:22 +0000)]
Move the EVP_MD block size accessor down

This way all the EVP_MD accessors are in the order of the struct fields.
Well, arguably the EVP_MD_meth* should come first, but they are scheduled
to go meet the dodo.

10 months agoMove the EVP_MD_CTX flag accessors up a bit
tb [Fri, 29 Dec 2023 07:14:02 +0000 (07:14 +0000)]
Move the EVP_MD_CTX flag accessors up a bit

This way the accessors are sorted the same way as the struct.

10 months agoHoist EVP_MD_CTX accessors to after EVP_MD_CTX_ctrl
tb [Fri, 29 Dec 2023 07:09:44 +0000 (07:09 +0000)]
Hoist EVP_MD_CTX accessors to after EVP_MD_CTX_ctrl

This way the file has EVP_Digest*, then EVP_MD_CTX new/free/clean,
then ctrl then the EVP_MD_CTX accessors, then the EVP_MD accessors
and finally the EVP_MD_meth stuff and the order of things starts
making a wee bit of sense.

10 months agoMove init/reset next to cleanup
tb [Fri, 29 Dec 2023 07:02:28 +0000 (07:02 +0000)]
Move init/reset next to cleanup

This way new/free aka create/destroy are next to each other. reset/cleanup
are the same thing and init will join the club after some other fixing
because two APIs that do the exact same thing aren't enough.

10 months agoMove the copy/copy_ex stuff down below the new/free/clear mess
tb [Fri, 29 Dec 2023 06:59:24 +0000 (06:59 +0000)]
Move the copy/copy_ex stuff down below the new/free/clear mess

10 months agoMerge the EVP_CIPHER_meth_* API into evp_cipher.c
tb [Fri, 29 Dec 2023 06:56:38 +0000 (06:56 +0000)]
Merge the EVP_CIPHER_meth_* API into evp_cipher.c

10 months agoMerge the remainder of evp_lib.c into evp_cipher.c
tb [Fri, 29 Dec 2023 06:17:58 +0000 (06:17 +0000)]
Merge the remainder of evp_lib.c into evp_cipher.c

10 months agoMove the middle part of evp_lib.c to evp_digest.c
tb [Fri, 29 Dec 2023 06:08:01 +0000 (06:08 +0000)]
Move the middle part of evp_lib.c to evp_digest.c

These are ~200 lines of EVP_MD API that separated two parts of the file
dedicated to EVP_CIPHER thingies.

10 months agoUse more consistent naming for some files in evp
tb [Fri, 29 Dec 2023 05:57:24 +0000 (05:57 +0000)]
Use more consistent naming for some files in evp

EVP_Digest{Init,Update,Final}() move from digest.c to evp_digest.c which
will become the home of all things related to EVP_MD{,_CTX} handling.

EVP_Cipher{Init,Update,Final}() move from evp_enc.c to evp_cipher.c which
will become the home of all things related to EVP_CIPHER{,_CTX} handling.

EVP_Encode{Init,Update,Final}() move from encode.c to evp_encode.c which
already is the home of EVP_ENCODE_CTX_{new,free}().

discussed with jsing

10 months agoUse a void pointer rather than char for method_data
tb [Fri, 29 Dec 2023 05:33:32 +0000 (05:33 +0000)]
Use a void pointer rather than char for method_data

This way we don't need to cast from BY_DIR * to char * and back in
its only consumer, the lovely by_dir.

10 months agoRemove the unused init flag of X509_LOOKUP
tb [Fri, 29 Dec 2023 05:17:20 +0000 (05:17 +0000)]
Remove the unused init flag of X509_LOOKUP

10 months agosync
deraadt [Fri, 29 Dec 2023 02:42:20 +0000 (02:42 +0000)]
sync

10 months agomore regress tests for RB_* and RBT_* macros
aisha [Fri, 29 Dec 2023 02:37:39 +0000 (02:37 +0000)]
more regress tests for RB_* and RBT_* macros

help, pointers and OK bluhm@

10 months agoClean up pkey_ec_paramgen()
tb [Thu, 28 Dec 2023 22:12:37 +0000 (22:12 +0000)]
Clean up pkey_ec_paramgen()

This is basically the same as the dh and dsa version, except it's
different because it's EC. Single exit, uniform error checking.
"Plug" another leak.

With this I earned another shining turd for my collection.

ok jsing

10 months agoRework pkey_das_paramgen()
tb [Thu, 28 Dec 2023 22:11:26 +0000 (22:11 +0000)]
Rework pkey_das_paramgen()

Another copy-paste-then-tweak-and-diverge version of the same old thing.
Fix it the same way as pkey_rsa_paramgen() and pkey_dh_paramgen(). The
callbacks are initialized at the top and the weird error checking is
turned into something much simpler.

ok jsing

10 months agoRework pkey_dh_paramgen()
tb [Thu, 28 Dec 2023 22:10:33 +0000 (22:10 +0000)]
Rework pkey_dh_paramgen()

Similar to pkey_rsa_paramgen() this function does some strange dances
with the pkey_gencb and initialization plus missing error checks. Fix
all that and use the idiom established in previous commits.

ok jsing

10 months agoFix pkey_ec_keygen()
tb [Thu, 28 Dec 2023 22:09:10 +0000 (22:09 +0000)]
Fix pkey_ec_keygen()

The EC code came later, and people got better at writing terrible code.
In this case, they could remain quite close to what they copy-pasted
from DH, so it was relatively straightforward (for once). There's only
one slight extra twist and that's easily dealt with.

ok jsing

10 months agoRework pkey_dsa_keygen()
tb [Thu, 28 Dec 2023 22:07:23 +0000 (22:07 +0000)]
Rework pkey_dsa_keygen()

Very similar to pkey_dh_keygen(): single exit and hold on to an extra
reference by calling EVP_PKEY_set1_DSA() instead of assigning the DSA
to the pkey. "Fixes" another leak that Coverity missed.

ok jsing

10 months agoRework pkey_dh_keygen()
tb [Thu, 28 Dec 2023 22:06:41 +0000 (22:06 +0000)]
Rework pkey_dh_keygen()

Single exit, fix error checking and hold on to the DH by keeping a
reference. In other words, switch from EVP_PKEY_assign() to using
EVP_PKEY_set1_DH() and free unconditionally in the error path.

ok jsing

10 months agoRework and fix pkey_hmac_keygen()
tb [Thu, 28 Dec 2023 22:00:56 +0000 (22:00 +0000)]
Rework and fix pkey_hmac_keygen()

The usual: single exit, error check all functions even if they can't
actually fail. This one was flagged again.

ok jsing

CID 471706 (false positive)

10 months agoRework pkey_rsa_keygen()
tb [Thu, 28 Dec 2023 21:59:07 +0000 (21:59 +0000)]
Rework pkey_rsa_keygen()

As usual, make the function single exit. Initialize the pkey callback
pointer and the BN_GENCB on the stack at the top rather than relying
on the weird trans_cb() in evp_pkey_set_cb_translate() to do so.
Greatly simplify the control flow and add missing error checks.

ok jsing

10 months agoRework rsa_priv_decode()
tb [Thu, 28 Dec 2023 21:58:12 +0000 (21:58 +0000)]
Rework rsa_priv_decode()

Turn the function into single exit and error check EVP_PKEY_assign()
for style.

ok jsing

10 months agoClean up old_rsa_priv_decode()
tb [Thu, 28 Dec 2023 21:57:08 +0000 (21:57 +0000)]
Clean up old_rsa_priv_decode()

Again change this function into the single exit idiom, and error check
EVP_PKEY_assign().

ok jsing

10 months agoClean up and fix pkey_cmac_keygen()
tb [Thu, 28 Dec 2023 21:56:12 +0000 (21:56 +0000)]
Clean up and fix pkey_cmac_keygen()

A void pointer can be passed without any cast or assigning it to an
intermediate variable. That's one of hte puzzling things in old OpenSSL
code: there are plenty of unnecessary casts and assignments of void
pointers.

Make use of this fact and rework the function to be single exit, error
check consistently, including the EVP_PKEY_assign() call that can't
really fail and free the cmkey on exit.

Why coverity didn't flag this one is another mystery.

ok jsing

10 months agoReplace EVP_KEY_assign_GOST() calls with EVP_PKEY_set_type()
tb [Thu, 28 Dec 2023 21:53:09 +0000 (21:53 +0000)]
Replace EVP_KEY_assign_GOST() calls with EVP_PKEY_set_type()

Calling EVP_KEY_assign_GOST(pkey, NULL) has the same effect as calling
EVP_PKEY_set_type(pkey, EVP_PKEY_GOSTR01). The only difference is that
the latter form allows for error checking while the former won't let
you do that. Add comments explaining what we're actually doing: freeing
and zeroing the pkey->pkey union.

ok jsing

10 months agoFix another EVP_PKEY_assign_GOST() call
tb [Thu, 28 Dec 2023 21:49:07 +0000 (21:49 +0000)]
Fix another EVP_PKEY_assign_GOST() call

Again this can't actually fail, but if it did, things would leak.
Call GOST_KEY_free() in the error path.

ok jsing

CID 471706 (false positive)

10 months agoClean up pkey_gost_mac_keygen()
tb [Thu, 28 Dec 2023 21:47:17 +0000 (21:47 +0000)]
Clean up pkey_gost_mac_keygen()

Make this function single exit, check and assign and finally error
check EVP_PKEY_assign(). This can't actually fail currently, but
if it did, things would leak. Free the key data with freezero.

ok jsing

CID 471704 (false positive)

10 months agodon't add values we won't print, use scandir properly
espie [Thu, 28 Dec 2023 18:05:32 +0000 (18:05 +0000)]
don't add values we won't print, use scandir properly

okay tb@

(logic NOT simplified because I don't want to risk introducing bugs,
and the compiler knows as much boolean logic as me)

10 months agoIntroduce qwx(4), a work-in-progress port of the Linux ath11k driver.
stsp [Thu, 28 Dec 2023 17:36:28 +0000 (17:36 +0000)]
Introduce qwx(4), a work-in-progress port of the Linux ath11k driver.

This driver is not working yet. Scanning almost works but a lot more
work remains to be done. So far most of the porting work was done by
myself, with some help from mpi, patrick, and kettenis.

Obviously this driver remains disabled for now. Enable relevant lines
in the kernel config if you want to help out with development.

At present firmware files must be obtained manually and placed
in the directory /etc/firmware/qwx/WCN6855/hw2.1/
This will be improved later.

Thanks to the OpenBSD Foundation for supporting this effort.

10 months agouse RB_FOREACH_SAFE for pf_purge_expired_src_nodes
aisha [Thu, 28 Dec 2023 16:21:08 +0000 (16:21 +0000)]
use RB_FOREACH_SAFE for pf_purge_expired_src_nodes

OK bluhm@

10 months agofix Tx watchdog trigger and freeze in dwqe(4)
uwe [Thu, 28 Dec 2023 14:30:28 +0000 (14:30 +0000)]
fix Tx watchdog trigger and freeze in dwqe(4)

dwqe(4) interfaces may trigger the "dwqe_watchdog" function and stop
transmitting packets under heavy Tx load. In this situation, ifconfig(8)
will permanently show OACTIVE until the interface is restarted (ifconfig
down/up).

The problem seems to be triggered by writing to the Tx ring tail pointer
register multiple times during dwqe_start(). Updating the Tx ring tail
pointer only after all Tx descriptors have been updated seems to fix it.

The fix is based on the eqos(4) driver in NetBSD. Verified on an Intel
Elkhart Lake machine but might affect other platforms with DesignWare
Ethernet Quality-of-Service Controller version 4.

Testing by bluhm@, ok kettenis@

10 months agoassume RGMII-to-Copper mode by default in eephy(4) for 88E151x PHYs
uwe [Thu, 28 Dec 2023 14:03:21 +0000 (14:03 +0000)]
assume RGMII-to-Copper mode by default in eephy(4) for 88E151x PHYs

The desired MII mode must be programmed explicitly for Marvel Atlantis
88E1512/88E1514 variants and we already do this for SGMII.

This change adds a missing case for RGMII-to-Copper that assumes RGMII,
unless the MAC driver sets MII_SGMII before calling mii_attach() or the
mode has already been programmed. (RGMII-to-Copper is also the hardware
default for E1510 and E1518.)

Suggestions and ok kettenis@

10 months agoAdd stream ID mapping support for PCIe controller found on M2 Pro/Max SoCs.
kettenis [Thu, 28 Dec 2023 13:32:56 +0000 (13:32 +0000)]
Add stream ID mapping support for PCIe controller found on M2 Pro/Max SoCs.

ok patrick@

10 months agoUpdate lang/ruby module documentation for Ruby 3.3
jeremy [Wed, 27 Dec 2023 23:46:42 +0000 (23:46 +0000)]
Update lang/ruby module documentation for Ruby 3.3

10 months agoOnly wrap pattern in *s if using a regular expression.
nicm [Wed, 27 Dec 2023 20:42:01 +0000 (20:42 +0000)]
Only wrap pattern in *s if using a regular expression.

10 months agoRemove flags from the prefix before comparing with the received key so
nicm [Wed, 27 Dec 2023 20:23:59 +0000 (20:23 +0000)]
Remove flags from the prefix before comparing with the received key so
that modifier keys with flags work correctly, GitHub issue 3764.

10 months agogroff apparently generates broken output for some common characters in
nicm [Wed, 27 Dec 2023 20:20:50 +0000 (20:20 +0000)]
groff apparently generates broken output for some common characters in
mdoc, so escaped versions have to be used instead. From Alexis
Hildebrandt in GitHub issue 3762.

10 months agoAlways initialize screen mode, GitHub issue 3750 from Ding Fei.
nicm [Wed, 27 Dec 2023 20:17:13 +0000 (20:17 +0000)]
Always initialize screen mode, GitHub issue 3750 from Ding Fei.

10 months agoCorrectly handle window ops with no pane, GitHub issue 3747.
nicm [Wed, 27 Dec 2023 20:13:35 +0000 (20:13 +0000)]
Correctly handle window ops with no pane, GitHub issue 3747.

10 months agoFix handling of skipped elements on the very first element transmitted.
claudio [Wed, 27 Dec 2023 17:22:25 +0000 (17:22 +0000)]
Fix handling of skipped elements on the very first element transmitted.
rsync compares e.g. the first mtime against 0, if the mtime is the epoch
then rsync will skip this field and openrsync will choke when receiving it.
So if there is no first element but a FLIST_XYZ_SAME flag is use 0 as
value.
Problem noticed by job@
OK tb@ job@ and yoda@ for fixing the if statements

10 months agoAdd initial regress for CRYPTO_EX_DATA.
jsing [Wed, 27 Dec 2023 12:34:32 +0000 (12:34 +0000)]
Add initial regress for CRYPTO_EX_DATA.

10 months agoRemove engine regress.
jsing [Wed, 27 Dec 2023 12:26:17 +0000 (12:26 +0000)]
Remove engine regress.

Engines are no longer a thing.

Discussed with tb@

10 months agoRefactor rtr_parse_error() so that even a NO_DATA_AVAILABLE is logged
claudio [Wed, 27 Dec 2023 12:00:30 +0000 (12:00 +0000)]
Refactor rtr_parse_error() so that even a NO_DATA_AVAILABLE is logged
as last error. So that bgpctl can show that there was no data available.
OK tb@

10 months agosync table(5) with reality
op [Wed, 27 Dec 2023 11:29:56 +0000 (11:29 +0000)]
sync table(5) with reality

There are two different parser for table(5)s with different edge cases.
Adjust the documentation to what the strictier of the two (smtpd
internal parser) accepts, even if makemap(8) allows for more.

In particular, adjust the description for the comments (that cannot be
'anywhere in the file'), document the special comment @list and mention
that splitting is done on the colon character too.

ok and many improvements from jmc@

10 months ago'pax' format support for mtime and atime
jca [Wed, 27 Dec 2023 08:29:41 +0000 (08:29 +0000)]
'pax' format support for mtime and atime

Access time can't be represented by ustar, so always include it when
using the pax format.  Also include an extended header record for mtime
if the file modification time can't be fully represented by ustar (eg
subsecond resolution).

Input & ok millert@

10 months agoMark rrdp debug logging functions as used in regress
tb [Wed, 27 Dec 2023 07:17:39 +0000 (07:17 +0000)]
Mark rrdp debug logging functions as used in regress

ok claudio

10 months agoRework the warnings on internet resources
tb [Wed, 27 Dec 2023 07:15:55 +0000 (07:15 +0000)]
Rework the warnings on internet resources

Unify the printing of warnings about AS numbers and IP address blocks to
use a call to as_warn() and ip_warn(). Fix a bug in the latter where the
upper bound of an IP range didn't take the RFC 3779 encoding into account
and passed the address directly to inet_pton() rather than filling the
missing bits with 1. Switch the argument order to match the warnings and
tweak some warning messages.

ok claudio job

10 months agoX509_LOOKUP_shutdown() became a noop.
tb [Wed, 27 Dec 2023 01:55:25 +0000 (01:55 +0000)]
X509_LOOKUP_shutdown() became a noop.

That we are still calling this (NB without error check because heritage),
made coverity unhappy.

CID 471705

10 months agoRename some argument placeholders to be less cryptic,
schwarze [Tue, 26 Dec 2023 22:13:00 +0000 (22:13 +0000)]
Rename some argument placeholders to be less cryptic,
in particular s/inl/in_len/ and s/outl/out_len/ as suggested by tb@.

While here, also get rid of the "outm" placeholder that has been
around since the file was added to OpenSSL in 2000, replacing it
with the usual "out" in the four function prototypes affected; tb@
and myself suspect it was simply a typo followed by copy and paste.

Slightly improve variable naming in the examples, too, for clarity and
consistency, even though that doesn't turn the examples into good examples.

OK tb@

10 months agoClose some major gaps in the documentation of EVP_Cipher(3),
schwarze [Tue, 26 Dec 2023 19:09:08 +0000 (19:09 +0000)]
Close some major gaps in the documentation of EVP_Cipher(3),
and describe EVP_CIPHER_CTX_init(3) in a less misleading way.
Joint work with and OK tb@.

10 months agoUpdate documentation URL
miod [Tue, 26 Dec 2023 14:04:50 +0000 (14:04 +0000)]
Update documentation URL

10 months agoAlign the other RIRs with the recent clarifications from AFRINIC
job [Tue, 26 Dec 2023 13:36:18 +0000 (13:36 +0000)]
Align the other RIRs with the recent clarifications from AFRINIC

Following https://lists.afrinic.net/pipermail/dbwg/2023-December/000496.html
Simply apply the inverse of 'afrinic.constraints' r1.2 to the other RIR files
(since no resources can be transferred from AFRINIC to any other RIRs).

OK tb@

10 months agoDo not accept empty delta elements
tb [Tue, 26 Dec 2023 11:03:27 +0000 (11:03 +0000)]
Do not accept empty delta elements

Ties de Kock found RRDP content that doesn't match the XML schema, most
likely generated by krill: https://github.com/NLnetLabs/krill/issues/1180

Use the state machine to mark a new delta element as empty and check at
the end whether that state was changed (which means it contained publish
or withdraw elements). If so, raise a parse failure.

ok claudio job

10 months agoApple machines with multiple speakers typically have the shutdown pin of
kettenis [Tue, 26 Dec 2023 09:25:15 +0000 (09:25 +0000)]
Apple machines with multiple speakers typically have the shutdown pin of
the digital amplifier codecs wired up to a single GPIO.  This is apparently
problematic for Linux and Asahi Linux changed their device trees to use a
regulator instead to such that reference counting makes sure that shutdown
isn't asserted until all codecs are ready for it.  Follow suit, even though
our regulator code doesn't do the proper reference counting yet.

ok patrick@

10 months agoImprove handling of SError interrupts. Print some useful information and
kettenis [Tue, 26 Dec 2023 09:19:15 +0000 (09:19 +0000)]
Improve handling of SError interrupts.  Print some useful information and
allow additional information to be printed for specific CPU types.  Use
this to print the L2C registers on Apple CPUs which can be very useful
in tracking down the source of certain SError interrupts.

ok miod@, dlg@