openbsd
22 months agoCall vget(9) in uvn_put() to make sure we hold a reference if we're called
kettenis [Thu, 8 Dec 2022 21:32:48 +0000 (21:32 +0000)]
Call vget(9) in uvn_put() to make sure we hold a reference if we're called
by the pagedaemon for a persisting vnode.  This prevents a panic in
uvm_vnp_unache() since a persisting vnode has a reference count of zero.
This should also prevent the vnode from being recycled from under our
feet while we're doing I/O to it.

This fixes the "macppc panic: vref used where vget required" issue.

tested by bluhm@, tb@
ok mpi@

22 months agobio chain test: fix inconsequential off-by-one
tb [Thu, 8 Dec 2022 18:34:00 +0000 (18:34 +0000)]
bio chain test: fix inconsequential off-by-one

22 months agobio chain test: minor readability tweaks
tb [Thu, 8 Dec 2022 18:33:20 +0000 (18:33 +0000)]
bio chain test: minor readability tweaks

22 months agobio chain test: rename a few variables for consistency
tb [Thu, 8 Dec 2022 18:16:28 +0000 (18:16 +0000)]
bio chain test: rename a few variables for consistency

22 months agobio chain test: decouple lengths of test chains
tb [Thu, 8 Dec 2022 18:15:36 +0000 (18:15 +0000)]
bio chain test: decouple lengths of test chains

Add helpers to create and destroy a linear chain of BIOs. Provide two
defines for the two lengths of the test chains and make them distinct
to rule out coincidences. As a bonus, the code becomes simpler.

22 months agobio chain test: refactor link_chains_at()
tb [Thu, 8 Dec 2022 18:12:39 +0000 (18:12 +0000)]
bio chain test: refactor link_chains_at()

Add helper that validate the chains. This deduplicates a lot of code and
makes the heart of the test much easier to read.

22 months agobio chain test: lose some do_{,bio_} prefixes
tb [Thu, 8 Dec 2022 18:10:52 +0000 (18:10 +0000)]
bio chain test: lose some do_{,bio_} prefixes

22 months agoSplit biotest into its three logical parts
tb [Thu, 8 Dec 2022 17:49:02 +0000 (17:49 +0000)]
Split biotest into its three logical parts

Some parts of this test rely on unportable behavior, so cannot run in
portable. This way we can run more tests for portable which is helpful
for analysis tools, better coverage, etc.

22 months agobgpctl(8): ometric: measure elapsed time with monotonic clock
cheloha [Thu, 8 Dec 2022 17:24:39 +0000 (17:24 +0000)]
bgpctl(8): ometric: measure elapsed time with monotonic clock

Prefer CLOCK_MONOTONIC to gettimeofday(2) when measuring elapsed time,
as the UTC clock can jump around.

ok claudio@

22 months agoChange ld.bfd to default to --enable-new-dtags so that it generates
guenther [Thu, 8 Dec 2022 17:15:52 +0000 (17:15 +0000)]
Change ld.bfd to default to --enable-new-dtags so that it generates
DT_RUNPATH tags by default, so that it is consistent with ld.lld.

ok millert@ miod@ kettenis@ kmos@

22 months agoFix DT_MIPS_RLD_MAP_REL
visa [Thu, 8 Dec 2022 13:41:06 +0000 (13:41 +0000)]
Fix DT_MIPS_RLD_MAP_REL

Use proper tag-relative values for DT_MIPS_RLD_MAP_REL tags.

This causes an ABI break on mips64. Your system must have latest ld.so
before applying this commit.

OK deraadt@ kettenis@

22 months agobiotest: Tweak long comment a bit
tb [Thu, 8 Dec 2022 12:27:03 +0000 (12:27 +0000)]
biotest: Tweak long comment a bit

22 months agoPrint skipped on non applicable architectures.
anton [Thu, 8 Dec 2022 12:14:11 +0000 (12:14 +0000)]
Print skipped on non applicable architectures.

22 months agoStop overriding the regress target and use REGRESS_TARGETS instead.
anton [Thu, 8 Dec 2022 12:01:04 +0000 (12:01 +0000)]
Stop overriding the regress target and use REGRESS_TARGETS instead.

22 months agoFix copy-paste error that left a paragraph ending in a comma
tb [Thu, 8 Dec 2022 11:33:58 +0000 (11:33 +0000)]
Fix copy-paste error that left a paragraph ending in a comma

22 months agoAdd BIO_push() and BIO_set_next() regress coverage
tb [Thu, 8 Dec 2022 11:32:27 +0000 (11:32 +0000)]
Add BIO_push() and BIO_set_next() regress coverage

This tests for the behavior changes in bio_lib.c r1.40 and r1.41 and
makes sure that BIO_push() and BIO_set_next() act on two chains in the
expected and now documented way.

22 months agobn_mod_exp test: drop extra parentheses for readability
tb [Thu, 8 Dec 2022 07:18:47 +0000 (07:18 +0000)]
bn_mod_exp test: drop extra parentheses for readability

22 months agoConvert tcptv_keep_init in milliseconds before comparing other values
yasuoka [Thu, 8 Dec 2022 05:59:39 +0000 (05:59 +0000)]
Convert tcptv_keep_init in milliseconds before comparing other values
of tcp time.  This fixes the retransmit timer of syn_cache which was
broken.  reported by naddy, input dlg, test jca

ok jca

22 months agoFix pvbus to specify M_ZERO properly.
yasuoka [Thu, 8 Dec 2022 05:45:36 +0000 (05:45 +0000)]
Fix pvbus to specify M_ZERO properly.

ok kn mvs mlarkin asou deraadt

22 months ago_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything
guenther [Thu, 8 Dec 2022 02:11:27 +0000 (02:11 +0000)]
_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything
is ELF" world.  Eliminate use of them in landisk code.

ok deraadt@

22 months ago_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything
guenther [Thu, 8 Dec 2022 01:25:43 +0000 (01:25 +0000)]
_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything
is ELF" world.  Eliminate use of them in amd64, arm64, armv7, i386,
macppc, mips64, and sparc64 code.

ok deraadt@ jca@ krw@

22 months agoForcibly set console output to the framebuffer on the Lenovo x13s.
patrick [Thu, 8 Dec 2022 00:29:06 +0000 (00:29 +0000)]
Forcibly set console output to the framebuffer on the Lenovo x13s.
We should actually do something like checking that both stdout-path
and serial0 don't exist to realize we have to switch, but this hack
gets us going for now.

ok kettenis@

23 months ago_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything
guenther [Wed, 7 Dec 2022 23:25:59 +0000 (23:25 +0000)]
_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything
is ELF" world.  Eliminate use of them in powerpc64 code.

ok gkoehler@

23 months agoImprove the implementation of BIO_push(3) such that it changes nothing
schwarze [Wed, 7 Dec 2022 23:08:47 +0000 (23:08 +0000)]
Improve the implementation of BIO_push(3) such that it changes nothing
and reports failure if a call would result in a cycle.
The algorithm used was originally suggested by jsing@.
Feedback and OK tb@.

23 months agoThe ACPI tables on the Lenovo x13s are incomplete and unusable. For
patrick [Wed, 7 Dec 2022 23:04:26 +0000 (23:04 +0000)]
The ACPI tables on the Lenovo x13s are incomplete and unusable.  For
that reason, identify that we're running on that machine by looking at
the SMBIOS tables and load alternate device tree binaries from disk.

ok kettenis@

23 months agoAdd references to the BIO_{push,pop}(3) example
tb [Wed, 7 Dec 2022 22:30:15 +0000 (22:30 +0000)]
Add references to the BIO_{push,pop}(3) example

The reader may not know what digest BIOs, Base64 BIOs and file BIOs are
and the relevant function names are non-obvious, hence it's not entirely
trivial to find the manuals where they are explained. With these references
a reader should be able to turn the example into actual code.

ok schwarze

23 months agoDocument 'uidinfo' structure locks.
mvs [Wed, 7 Dec 2022 20:08:28 +0000 (20:08 +0000)]
Document 'uidinfo' structure locks.

Inputs and ok bluhm@

23 months agoAdd END()s to match ENTRY()s.
guenther [Wed, 7 Dec 2022 19:26:39 +0000 (19:26 +0000)]
Add END()s to match ENTRY()s.
ok deraadt@

23 months agoPrefer numeric labels over L<digit> labels, as the latter clutter
guenther [Wed, 7 Dec 2022 19:26:02 +0000 (19:26 +0000)]
Prefer numeric labels over L<digit> labels, as the latter clutter
the final kernel symbol table.
Add END()s to match ENTRY()s.

ok deraadt@

23 months agoPrefer STRONG_ALIAS() over multiple overlapping _ENTRY/_NENTRY
guenther [Wed, 7 Dec 2022 19:21:54 +0000 (19:21 +0000)]
Prefer STRONG_ALIAS() over multiple overlapping _ENTRY/_NENTRY
uses, as the latter requires manual handling of _PROF_PROLOGUE.
Add END()s to match ENTRY()s.

ok deraadt@

23 months agoApply changes from commitid FWrfGfO9Ojnsh1mq to libkern.
guenther [Wed, 7 Dec 2022 18:25:32 +0000 (18:25 +0000)]
Apply changes from commitid FWrfGfO9Ojnsh1mq to libkern.
From original commit message: To mitigate against spectre attacks,
AMD processors without the IBRS feature need an lfence instruction
after every near ret.  See software techniques for managing speculation
on AMD processors revision 9.17.20 mitigation G-5.

ok deraadt@

23 months agoDo not store unused ICMPv6 Option PREFIX_INFORMATION
kn [Wed, 7 Dec 2022 17:34:20 +0000 (17:34 +0000)]
Do not store unused ICMPv6 Option PREFIX_INFORMATION

Dead since 2017 sys/netinet6/nd6_rtr.c r1.163
    Remove sending of router solicitations and processing of router
    advertisements from the kernel. It's handled by slaacd(8) these days.

sysctl(2) net.inet6.icmp6.nd6_debug does not warn about it like it does
for, e.g., duplicate MTU options, so don't do anything with this option.

Remove access macros for other unused options while here.
Eventually, union nd_opts should be removed completely.
All under _KERNEL.

tcpdump(8)/rad(8)/slaacd(8) keep showing/sending/receiving this option when
running this diff on both router and client.

OK claudio

23 months agoFix example string
tb [Wed, 7 Dec 2022 17:17:29 +0000 (17:17 +0000)]
Fix example string

If you want to Base64-encode "Hello World\n" using a BIO, you had better
pass "Hello World\n" into it, not something slightly different... While
we're touching this, we might as well write it the way K&R did...

23 months agoFix comment by splitting sentance in two. From kn@
claudio [Wed, 7 Dec 2022 14:38:29 +0000 (14:38 +0000)]
Fix comment by splitting sentance in two. From kn@

23 months agoFix comment typo.
dtucker [Wed, 7 Dec 2022 11:45:43 +0000 (11:45 +0000)]
Fix comment typo.

23 months agoProcess escape sequences in show-buffer, GitHub issue 3401.
nicm [Wed, 7 Dec 2022 09:44:44 +0000 (09:44 +0000)]
Process escape sequences in show-buffer, GitHub issue 3401.

23 months agoIf the called of ypconnect(2) is root, the socket should acquire a
deraadt [Wed, 7 Dec 2022 01:02:28 +0000 (01:02 +0000)]
If the called of ypconnect(2) is root, the socket should acquire a
reserved port to received secure-maps from the ypserver.
issue found by niklas, using a simpler diff i proposed
ok miod

23 months agoAdd support for additional RTKit endpoint advertised by NVMe firmware that
kettenis [Tue, 6 Dec 2022 23:18:54 +0000 (23:18 +0000)]
Add support for additional RTKit endpoint advertised by NVMe firmware that
comes with newer macOS releases.

ok patrick@

23 months agoZap extra space
tb [Tue, 6 Dec 2022 22:22:42 +0000 (22:22 +0000)]
Zap extra space

23 months agoAdd missing kernel lock around (*if_ioctl)() call within
mvs [Tue, 6 Dec 2022 22:19:39 +0000 (22:19 +0000)]
Add missing kernel lock around (*if_ioctl)() call within
in{,6}_addmulti(). Since kernel lock is no more taken while following
setsockopt() path, it should be taken in this place. Corresponding
in{,6}_delmulti() already acquire kernel lock around (*if_ioctl)().

Problem reported and diff tested by weerd@

ok kn@ bluhm@

23 months agoMajor rewrite for accuracy and clarity, and document BIO_set_next(3).
schwarze [Tue, 6 Dec 2022 21:13:01 +0000 (21:13 +0000)]
Major rewrite for accuracy and clarity, and document BIO_set_next(3).
Feedback and OK tb@.

23 months ago_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything
guenther [Tue, 6 Dec 2022 18:50:59 +0000 (18:50 +0000)]
_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything
is ELF" world.  Eliminate use of them in m88k code.

ok aoyama@

23 months agoAdd a few missing headers and drop a few unused ones
tb [Tue, 6 Dec 2022 18:23:29 +0000 (18:23 +0000)]
Add a few missing headers and drop a few unused ones

In bn_test.c include bn_local.h instead of using copy-pasted prototypes.

23 months agoMake sure BIO_push(3) always preserves all invariants of the prev_bio
schwarze [Tue, 6 Dec 2022 17:59:21 +0000 (17:59 +0000)]
Make sure BIO_push(3) always preserves all invariants of the prev_bio
and next_bio fields of all BIO objects in all affected chains, no
matter what the arguments are.
In particular, if the second argument (the one to be appended) is
not at the beginning of its chain, properly detach the beginning
of its chain before appending.

We have weak indications that this bug might affect real-world code.
For example, in FreeRDP, file libfreerdp/crypto/tls.c, function
bio_rdp_tls_ctrl(), case BIO_C_SET_SSL, BIO_push(3) is definitely
called with a second argument that is *not* at the beginning of its
chain.  Admittedly, that code is hard to fathom, but it does appear
to result in a bogus prev_bio pointer without this patch.
The practical impact of this bug in this and other software remains
unknown; the consequences might possibly escalate up to use-after-free
issues if BIO_pop(3) is afterwards called on corrupted BIO objects.

OK tb@

23 months agoOpenMetrics is rather strict about naming metricsets.
claudio [Tue, 6 Dec 2022 17:38:41 +0000 (17:38 +0000)]
OpenMetrics is rather strict about naming metricsets.
Add a function that a) verifies that none of the special suffixes is used
and b) that the name itself is not yet used already.
Also when printing a counter _total has to be added to the metric name and
for info metrics _info is added.
With and OK tb@

23 months agoInstall arm64-qcom-dtb upon encountering a qcgpio(4) device.
patrick [Tue, 6 Dec 2022 17:33:27 +0000 (17:33 +0000)]
Install arm64-qcom-dtb upon encountering a qcgpio(4) device.

ok phessler@ sthen@ tobhe@

23 months agolist hatch-vcs for MODPY_PYBUILD
sthen [Tue, 6 Dec 2022 16:18:51 +0000 (16:18 +0000)]
list hatch-vcs for MODPY_PYBUILD

23 months agoImprove the poorly designed BIO_set_next(3) API to always preserve all
schwarze [Tue, 6 Dec 2022 16:10:55 +0000 (16:10 +0000)]
Improve the poorly designed BIO_set_next(3) API to always preserve all
invariants of the prev_bio and next_bio fields of all BIO objects
in all involved chains, no matter which arguments this function is
called with.

Both real-world uses of this function (in libssl and freerdp) have
been audited to make sure this makes nothing worse.  We believe libssl
behaves correctly before and after the patch (mostly because the second
argument is NULL there), and we believe the code in freerdp behaves
incorrectly before and after the patch, leaving a prev_bio pointer in
place that is becoming bogus, only in a different object before and
after the patch.  But after the patch, that bogus pointer is due to a
separate bug in BIO_push(3), which we are planning to fix afterwards.

Joint work with and OK tb@.

23 months agoImplement support for shared interrupts.
kettenis [Tue, 6 Dec 2022 16:07:14 +0000 (16:07 +0000)]
Implement support for shared interrupts.

ok patrick@

23 months agoFor write operations, wait until the transaction completes just like we
kettenis [Tue, 6 Dec 2022 16:06:32 +0000 (16:06 +0000)]
For write operations, wait until the transaction completes just like we
do after sending the command for a read operation.  Fixes issues with doing
multiple operations back-to-back.

ok patrick@

23 months agoImplement ometric_set_timeval() and ometric_set_timeval_with_labels()
claudio [Tue, 6 Dec 2022 11:27:58 +0000 (11:27 +0000)]
Implement ometric_set_timeval() and ometric_set_timeval_with_labels()

Timestamps are special since they can require more significant bits
than a double provides. Instead print them as pseudo float as suggested
by the OpenMetrics draft.
OK cheloha@

23 months agoCorrect previous, must exit 0 to signal failure.
anton [Tue, 6 Dec 2022 09:37:20 +0000 (09:37 +0000)]
Correct previous, must exit 0 to signal failure.

23 months agoPrint size_t with %zu.
tobhe [Tue, 6 Dec 2022 09:07:33 +0000 (09:07 +0000)]
Print size_t with %zu.

ok patrick@

23 months agoarithmethic -> arithmetic
jsg [Tue, 6 Dec 2022 02:12:05 +0000 (02:12 +0000)]
arithmethic -> arithmetic

23 months agoi386: switch to clockintr
cheloha [Tue, 6 Dec 2022 01:56:43 +0000 (01:56 +0000)]
i386: switch to clockintr

In lapic timer mode:

- Rip out lapic_delay().  We can't use the lapic timer to delay(9) when
  it's running in one-shot mode.
- Add a randomized statclock(), stathz = hz.
- Add profiling support, profhz = stathz * 10.
- Wire up lapic_intrclock.

In i8254-mode:

- i8254's clockintr() does not have a monopoly on hardclock(9).
- mc146818's rtcintr() does not have a monopoly on statclock().
- In profiling mode, the statclock() will drift very slightly
  because (profhz = 1024) does not divide into 1 billion.  Need to
  consider how best to fix this.

ACPI suspend/resume tested by mlarkin@ via ESXi.  Tons of testing by
Scott Bennett on a Pentium 4 machine; APM suspend/resume confirmed to
work there, too.

Link: https://marc.info/?l=openbsd-tech&m=166776370803446&w=2
ok mlarkin@

23 months agosh, landisk: switch to clockintr
cheloha [Tue, 6 Dec 2022 01:19:35 +0000 (01:19 +0000)]
sh, landisk: switch to clockintr

Patch review and testing by miod@.

Link: https://marc.info/?l=openbsd-tech&m=166776412003652&w=2
ok mlarkin@, probably ok miod@

23 months agom88k, luna88k: switch to clockintr
cheloha [Tue, 6 Dec 2022 00:56:52 +0000 (00:56 +0000)]
m88k, luna88k: switch to clockintr

- Initialize tick_nsec during cpu_initclocks()

We have no control over the interrupt clock on luna88k, so this switch
is trivial.

Bringup help and testing from aoyama@ and miod@.

Link: https://marc.info/?l=openbsd-tech&m=166776371203450&w=2
ok aoyama@ mlarkin@

23 months agohppa: switch to clockintr
cheloha [Tue, 6 Dec 2022 00:40:09 +0000 (00:40 +0000)]
hppa: switch to clockintr

- Remove hppa-specific clock interrupt scheduling bits from cpu_info.
- Rename cpu_hardclock() to itmr_intr(); it doesn't exclusively run
  hardclock(9) anymore.
- Wire up itmr_intrclock.

hppa now has a randomized statclock(), stathz = hz.

Patch help, testing, and review from kettenis@ (B2000) and miod@ (C3650).
MP testing from guenther@ (dual-core J6700).

ok mlarkin@ kettenis@, "Ship it?" guenther@

23 months agoPrint SBI vendor, version and implemented spec version
jca [Tue, 6 Dec 2022 00:11:23 +0000 (00:11 +0000)]
Print SBI vendor, version and implemented spec version

On my Unmatched:

SBI: OpenSBI v0.9, SBI Specification Version 0.2

ok mlarkin@

23 months agoDrop unused WEAK_REFERENCE macro
jca [Tue, 6 Dec 2022 00:08:38 +0000 (00:08 +0000)]
Drop unused WEAK_REFERENCE macro

Probably coming from FreeBSD.  We already have WEAK_ALIAS a few lines
above.  ok mlarkin@ guenther@

23 months agozap a pile of dangling tabs
deraadt [Mon, 5 Dec 2022 23:18:37 +0000 (23:18 +0000)]
zap a pile of dangling tabs

23 months agomake all lists non -compact, to keep spacing consistent;
jmc [Mon, 5 Dec 2022 23:14:03 +0000 (23:14 +0000)]
make all lists non -compact, to keep spacing consistent;
from brad
ok jca

while here knock out the resulting unnecessary Pp and wrap some
long lines

23 months agoPrep for rpki-client 8.2
claudio [Mon, 5 Dec 2022 21:02:52 +0000 (21:02 +0000)]
Prep for rpki-client 8.2

23 months agoAdd support configuring hostname.if(5) by lladdr
afresh1 [Mon, 5 Dec 2022 20:12:00 +0000 (20:12 +0000)]
Add support configuring hostname.if(5) by lladdr

Original implementation by martijn@
Feedback and suggestions from kn@, sthen@, claudio@, florian@, and deraadt@.

ok deraadt

23 months agoUnbreak rust-openssl-tests on sparc64
tb [Mon, 5 Dec 2022 14:43:06 +0000 (14:43 +0000)]
Unbreak rust-openssl-tests on sparc64

For the test compilation using the CC crate, base clang is good enough,
so we don't need to pull in another heavy dependency just for this test.

23 months agoRevert and adjust the changes in ometric_set_state() from last commit.
claudio [Mon, 5 Dec 2022 11:50:11 +0000 (11:50 +0000)]
Revert and adjust the changes in ometric_set_state() from last commit.
Calling ometric_set_int_with_labels() for a state metric fails because
there is a check in ometric_set_int comparing the type.
Use olabels_add_extras() and ometric_set_int_value() instead.

23 months agoUse evcount_percpu() with mips64 clock and ipi interrupt counters.
visa [Mon, 5 Dec 2022 08:59:28 +0000 (08:59 +0000)]
Use evcount_percpu() with mips64 clock and ipi interrupt counters.

OK jca@ cheloha@

23 months agoAvoid event counter re-insert in evcount_percpu()
visa [Mon, 5 Dec 2022 08:58:49 +0000 (08:58 +0000)]
Avoid event counter re-insert in evcount_percpu()

This fixes evcount_list corruption that happened when evcount_percpu()
was called after evcount_init_percpu().

OK jca@ cheloha@ jmatthew@

23 months agoAdd linker script for hppa. The crucial bit is that hppa needs an extra
kettenis [Mon, 5 Dec 2022 07:49:07 +0000 (07:49 +0000)]
Add linker script for hppa.  The crucial bit is that hppa needs an extra
segment for .plt/.got which needs to be placed correctly.

ok deraadt@

23 months agoAdd support for the Backlight connector property like we already have for
kettenis [Mon, 5 Dec 2022 07:40:21 +0000 (07:40 +0000)]
Add support for the Backlight connector property like we already have for
inteldrm(4).  This makes xbacklight(1) work when using the Xorg modesetting
driver.  The Xorg amdgpu driver needs a small change for this that should
land soon.

ok jsg@

23 months agoTrigger a kevent when we change the backlight. This gives the Xorg
kettenis [Mon, 5 Dec 2022 07:37:57 +0000 (07:37 +0000)]
Trigger a kevent when we change the backlight.  This gives the Xorg
drivers a chance to notice the update of the Backlight connector property
when we change it behind its back.

ok jsg@

23 months agoCalculate the bit clock based on number of channels, bytes/sample and
kettenis [Mon, 5 Dec 2022 07:30:51 +0000 (07:30 +0000)]
Calculate the bit clock based on number of channels, bytes/sample and
sample rate instead of relying on the "mclk-fs" property.  This property
is no longer present in upstream device trees.

ok ratchov@

23 months agoTreat all possible mprotect() failures as fatal.
anton [Mon, 5 Dec 2022 06:30:25 +0000 (06:30 +0000)]
Treat all possible mprotect() failures as fatal.

23 months agobn_mod_exp.c doesn't need <string.h>
tb [Mon, 5 Dec 2022 00:24:44 +0000 (00:24 +0000)]
bn_mod_exp.c doesn't need <string.h>

23 months agouserspace: remove vestigial '?' cases from top-level getopt(3) loops
cheloha [Sun, 4 Dec 2022 23:50:45 +0000 (23:50 +0000)]
userspace: remove vestigial '?' cases from top-level getopt(3) loops

getopt(3) returns '?' when it encounters a flag not present in the in
the optstring or if a flag is missing its option argument.  We can
handle this case with the "default" failure case with no loss of
legibility.  Hence, remove all the redundant "case '?':" lines.

Prompted by dlg@.  With help from dlg@ and millert@.

Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2
ok naddy@ millert@ dlg@

23 months agozap weird spaces $EDITOR added in previous
tb [Sun, 4 Dec 2022 19:31:13 +0000 (19:31 +0000)]
zap weird spaces $EDITOR added in previous

23 months agoPrint skipped while running on anything other than i386.
anton [Sun, 4 Dec 2022 19:04:38 +0000 (19:04 +0000)]
Print skipped while running on anything other than i386.

23 months agosystat(1): vmstat: measure elapsed time with clock_gettime(2) instead of ticks
cheloha [Sun, 4 Dec 2022 18:01:57 +0000 (18:01 +0000)]
systat(1): vmstat: measure elapsed time with clock_gettime(2) instead of ticks

The vmstat view in systat(1) should not use statclock() ticks to count
elapsed time.  First, ticks are low resolution.  Second, the statclock
is sometimes randomized, so each tick is not necessarily of equal
length.  Third, we're counting ticks from every CPU on the system, so
every rate in the view is divided by the number of CPUs.  For example,
on an amd64 system with 8 CPUs you currently see:

     200 clock

... when the true clock interrupt rate on that system is 1600.

Instead, measure elapsed time with clock_gettime(2).  Use CLOCK_UPTIME
here so we exclude time when the system is suspended.  With this
change we no longer need "stathz" or "hertz".  We can also get rid of
the anachronistic secondary clock failure test.

Prompted by dlg@ and jmatthew@.  deraadt@ says this has been in snaps
since 2022-11-21; no complaints.

Link: https://marc.info/?l=openbsd-tech&m=166898960831136&w=2
ok dlg@ deraadt@

23 months agold.so: Disable DT_MIPS_RLD_MAP_REL
visa [Sun, 4 Dec 2022 15:55:26 +0000 (15:55 +0000)]
ld.so: Disable DT_MIPS_RLD_MAP_REL

The linker produces incorrect values for DT_MIPS_RLD_MAP_REL tags.
Disable the handling of the tag in the dynamic loader. The linker
will be fixed in a later commit when snapshots have the updated ld.so.

Discussed with and OK kettenis@ deraadt@

23 months agoThe next step for mimmutable(). ld.so figures out what regions of memory
deraadt [Sun, 4 Dec 2022 15:42:07 +0000 (15:42 +0000)]
The next step for mimmutable().  ld.so figures out what regions of memory
of startup shared library mappings can be made immutable, and also does
this for dlope() RTLD_NODELETE and subsidiary libraries.  Complexity in this
diff is due to the GNU_RELRO and OPENBSD_MUTABLE sections.
Tested in snaps for about 3 weeks, with some bootstrap related pain felt in ports
ok kettenis, much help from others.

23 months agoRename sun to s_un for portability.
tobhe [Sun, 4 Dec 2022 11:54:31 +0000 (11:54 +0000)]
Rename sun to s_un for portability.

ok patrick@

23 months agoRemove duplicate includes. Patch from AtariDreams via github PR#364.
dtucker [Sun, 4 Dec 2022 11:03:11 +0000 (11:03 +0000)]
Remove duplicate includes.  Patch from AtariDreams via github PR#364.

23 months agoFix warnings about binding changed to STB_WEAK on i386
tb [Sun, 4 Dec 2022 08:22:13 +0000 (08:22 +0000)]
Fix warnings about binding changed to STB_WEAK on i386

Compiling libc on i386 results in compiler warnings for bcmp, bzero, bcopy,
brk, and sbrk. Use ENTRY_NB instead of ENTRY to avoid this.

ok jca millert

23 months agoregen
jsg [Sun, 4 Dec 2022 03:14:20 +0000 (03:14 +0000)]
regen

23 months agoadd Intel DG1, DG2, ATS-M ids
jsg [Sun, 4 Dec 2022 03:13:52 +0000 (03:13 +0000)]
add Intel DG1, DG2, ATS-M ids

from linux 6.1 i915_pciids.h, Mesa 22.3 iris_pci_ids.h

Intel Iris Xe MAX Graphics Open Source Programmer's Reference Manual
Volume 4: Configurations

23 months agoInclude endian.h for htobe32
tobhe [Sun, 4 Dec 2022 00:23:03 +0000 (00:23 +0000)]
Include endian.h for htobe32

23 months agoConsistently use uintXX_t from <stdint.h> instead of u_intXX_t.
tobhe [Sat, 3 Dec 2022 22:34:35 +0000 (22:34 +0000)]
Consistently use uintXX_t from <stdint.h> instead of u_intXX_t.

23 months agoInclude endian.h where needed for betohXX functions.
tobhe [Sat, 3 Dec 2022 21:02:27 +0000 (21:02 +0000)]
Include endian.h where needed for betohXX functions.

23 months agoUse evcount_percpu(9) for clock interrupts
jca [Sat, 3 Dec 2022 15:03:49 +0000 (15:03 +0000)]
Use evcount_percpu(9) for clock interrupts

ok cheloha@

23 months agoAdd ENTRY_NB() and use it for brk.S and sbrk.S on riscv64
jca [Sat, 3 Dec 2022 15:02:30 +0000 (15:02 +0000)]
Add ENTRY_NB() and use it for brk.S and sbrk.S on riscv64

NB for "No Binding".  This gets us rid of clang-13 warnings about
a global symbol redefined as weak.  Mostly a copy of what guenther@
already implemented on other archs.  ok guenther@ tb@

23 months agoRework the RTKit code such that we don't spin forever if for some reason
kettenis [Sat, 3 Dec 2022 13:42:23 +0000 (13:42 +0000)]
Rework the RTKit code such that we don't spin forever if for some reason
we don't get the expected replies from the firmware on the other side.

ok patrick@

23 months agoThe device tree bindings for aplcpu(4) changed once more, recycling the
kettenis [Sat, 3 Dec 2022 13:31:32 +0000 (13:31 +0000)]
The device tree bindings for aplcpu(4) changed once more, recycling the
"apple,cluster-cpufreq" compatible that was used for the first version.
Add support for the "new new" binding while retaining support for the
"old new" binding.  Hopefully nobody is using the "old" binding anymore
now that we update the m1n1+u-boot+dtb "boot firmware" automatically on
sysupgrade.

ok patrick@, tobhe@

23 months agoskip rust-openssl-tests on sparc64
tb [Sat, 3 Dec 2022 11:35:34 +0000 (11:35 +0000)]
skip rust-openssl-tests on sparc64

The issue is likely that the build is trying to compile some generated
C code with the prehistoric gcc from base, so add a tentative workaround
for that. Since I don't currently have access to a sparc64 box where I
could validate this easily and check if the workaround is enough, let's
not waste lots of cycles on this.

23 months agoModify vmt to use the buffer allocated in pvbus directly instead of
yasuoka [Sat, 3 Dec 2022 10:57:04 +0000 (10:57 +0000)]
Modify vmt to use the buffer allocated in pvbus directly instead of
the buffer in the vmt softc when doing RPC for PVBUSIOC_KV{READ|WRITE}
ioctl.

ok asou

23 months agoClean up makefile
tb [Sat, 3 Dec 2022 09:59:19 +0000 (09:59 +0000)]
Clean up makefile

23 months agobiotest needs bio_local.h now
tb [Sat, 3 Dec 2022 09:55:53 +0000 (09:55 +0000)]
biotest needs bio_local.h now

Should have been part of the previous commit

23 months agoTest BIO_{push,pop}() along a linear chain
tb [Sat, 3 Dec 2022 09:53:47 +0000 (09:53 +0000)]
Test BIO_{push,pop}() along a linear chain

23 months agoMore cleanup
tb [Sat, 3 Dec 2022 09:44:52 +0000 (09:44 +0000)]
More cleanup

Drop unnecessary loading of error strings, fix error path and consistently
print to stdout.

23 months agoRefactor and fix bn_mod_exp test
tb [Sat, 3 Dec 2022 09:37:02 +0000 (09:37 +0000)]
Refactor and fix bn_mod_exp test

The amount of copy-paste in this test led to a few bugs and it was hard to
spot them since things were done in random order. Use a different approach:
compute the result of a^b (mod m) according to BN_mod_exp_simple(), then
compare the results of all the other *_mod_exp* functions to that.

Reuse the test structure from bn_mod_exp_zero.c to loop over the list of
functions. This way we test more functions and don't forget to check some
crucial bits.

23 months agoAdd missing checks for BN_mod_exp_{non,}ct()
tb [Sat, 3 Dec 2022 08:21:38 +0000 (08:21 +0000)]
Add missing checks for BN_mod_exp_{non,}ct()

Someone added a few more functions to test, but forgot to check their
results, so if they would not do the expected thing that would only be
noticed if one of the already tested functions would break.