openbsd
3 years agosync maxusers with other 64bits architectures. ok kettenis@, deraadt@.
matthieu [Tue, 29 Jun 2021 17:49:49 +0000 (17:49 +0000)]
sync maxusers with other 64bits architectures. ok kettenis@, deraadt@.

3 years agoFlip the -r RRDP switch, which went through community testing for half a year.
deraadt [Tue, 29 Jun 2021 17:43:57 +0000 (17:43 +0000)]
Flip the -r RRDP switch, which went through community testing for half a year.
Default is now to attempt RRDP first, then try RSYNC.
If problems show up, return to rsync-only behaviour with -R, and file a report.
ok claudio

3 years agomore precision because the argument is signed,
schwarze [Tue, 29 Jun 2021 16:34:52 +0000 (16:34 +0000)]
more precision because the argument is signed,
and even char is signed on some platforms;
OK millert@ jmc@

3 years agoremove unused prototype
claudio [Tue, 29 Jun 2021 16:15:37 +0000 (16:15 +0000)]
remove unused prototype
OK deraadt@

3 years agoSend AUTHENTICATION_FAILED in case of unexpected auth method or auth
tobhe [Tue, 29 Jun 2021 15:39:20 +0000 (15:39 +0000)]
Send AUTHENTICATION_FAILED in case of unexpected auth method or auth
data not being accessible.

From Claudia Priesterjahn @ achelos
ok patrick@

3 years agofunction args must not use .Ar and EDOM and ERANGE require .Er;
schwarze [Tue, 29 Jun 2021 14:47:33 +0000 (14:47 +0000)]
function args must not use .Ar and EDOM and ERANGE require .Er;
mostly mechanical diff similar to what Emil Engler just sent for sqrt(3)

3 years agoinsert missing .Ns
schwarze [Tue, 29 Jun 2021 14:46:44 +0000 (14:46 +0000)]
insert missing .Ns

3 years agobasic mdoc(7) macro cleanup; patch from me at EmilEngler dot com
schwarze [Tue, 29 Jun 2021 14:04:16 +0000 (14:04 +0000)]
basic mdoc(7) macro cleanup; patch from me at EmilEngler dot com

3 years agorktcphy(4)
patrick [Tue, 29 Jun 2021 12:51:18 +0000 (12:51 +0000)]
rktcphy(4)

3 years agoWhen configuring the USB3 phy, try the OFW PHY API first, and if there's
patrick [Tue, 29 Jun 2021 12:46:36 +0000 (12:46 +0000)]
When configuring the USB3 phy, try the OFW PHY API first, and if there's
no matching device, fall back to xhci(4)'s PHY configuration code.

ok kettenis@

3 years agoEnable rktcphy(4).
patrick [Tue, 29 Jun 2021 12:43:33 +0000 (12:43 +0000)]
Enable rktcphy(4).

ok kettenis@

3 years agoAdd rktcphy(4), a driver for the Type-C PHY controller found on the
patrick [Tue, 29 Jun 2021 12:43:09 +0000 (12:43 +0000)]
Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399.  While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up.  Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@

3 years agoThe way we boot OpenBSD, there is no need to play the hart lottery.
kettenis [Tue, 29 Jun 2021 12:22:39 +0000 (12:22 +0000)]
The way we boot OpenBSD, there is no need to play the hart lottery.
This is essentially a remnant of early RISC-V, which used the Berkely
Boot Loader.  Modern RISC-V firmware makes sure only one hart is enabled
and offsers SBI calls to start the other harts.

3 years agoAdjust unveil_find_cover() to return -1 if the root vnode is passed in.
claudio [Tue, 29 Jun 2021 07:55:29 +0000 (07:55 +0000)]
Adjust unveil_find_cover() to return -1 if the root vnode is passed in.
This helps unveil_add_vnode() to properly re-evaluate unveils when
"/" is added to the list.

Because of this adjust unveil_covered() to check for the root as well
so that in that case the unveil uv is returned instead of NULL. Traversing
up from the root returns the root. This check is not really needed since
namei has its own root check and shortcuts for root vnodes.

OK semarie@

3 years agoremove arch ifdefs around drm.h include
jsg [Tue, 29 Jun 2021 01:46:35 +0000 (01:46 +0000)]
remove arch ifdefs around drm.h include

ok deraadt@ kettenis@

3 years agomove some config lines to ensure drm.h is always created
jsg [Tue, 29 Jun 2021 01:42:14 +0000 (01:42 +0000)]
move some config lines to ensure drm.h is always created

ok deraadt@ kettenis@

3 years agodelete the two pairs of extra blank lines from expected man(7) terminal
schwarze [Mon, 28 Jun 2021 19:59:09 +0000 (19:59 +0000)]
delete the two pairs of extra blank lines from expected man(7) terminal
output that are no longer printed since man_term.c rev. 1.189

3 years agoAdd another epicycle to -A processing that ensures ONLY the
krw [Mon, 28 Jun 2021 19:50:30 +0000 (19:50 +0000)]
Add another epicycle to -A processing that ensures ONLY the
partition table is changed. Not the GPT header. Not the MBR. And
only write back as much partition table information as the header
claims to have room for.

At a minimum should make -A safer when operating on the Apple M1
GPT.

A major overhaul of this code is urgently needed before someone
sneezes too hard in its vicinity.

Feedback kettenis@ & ok deraadt@

3 years agoIn terminal output of man(7) documents, stop printing two extra blank
schwarze [Mon, 28 Jun 2021 19:49:57 +0000 (19:49 +0000)]
In terminal output of man(7) documents, stop printing two extra blank
lines before the NAME section and before the page footer.  While these
blank lines had a long tradition, they didn't really serve any purpose
and merely wasted screen real estate.  Besides, this makes output from
man(7) more similar to output from mdoc(7).

This commit keeps mandoc compatible with groff-current,
where G. Branden Robinson committed the same change
on June 16 (groff commit 2278d6ed).

3 years agodo not need .align 2 or 4 after .text, the ABI's .text will decide what
deraadt [Mon, 28 Jun 2021 18:53:10 +0000 (18:53 +0000)]
do not need .align 2 or 4 after .text, the ABI's .text will decide what
to do
ok kettenis

3 years agowhitespace
deraadt [Mon, 28 Jun 2021 18:52:26 +0000 (18:52 +0000)]
whitespace

3 years agoUse the order action->sender == ctx->mode everywhere for consistency.
tb [Mon, 28 Jun 2021 18:48:56 +0000 (18:48 +0000)]
Use the order action->sender == ctx->mode everywhere for consistency.

3 years agoctx->alert is not a boolean, so compare it explicitly against 0.
tb [Mon, 28 Jun 2021 18:42:17 +0000 (18:42 +0000)]
ctx->alert is not a boolean, so compare it explicitly against 0.

3 years agoFix assembly in #ifdef MULTIPROCESSOR case.
kettenis [Mon, 28 Jun 2021 18:38:17 +0000 (18:38 +0000)]
Fix assembly in #ifdef MULTIPROCESSOR case.

ok jsing@

3 years agoAdd speculation-blocking sequence after syscalls like we did for libc a while
kettenis [Mon, 28 Jun 2021 18:21:08 +0000 (18:21 +0000)]
Add speculation-blocking sequence after syscalls like we did for libc a while
ago.  While there, fix the SYS_exit syscall.  The syscall number is passed in
r12, not as the argument of the syscall instruction.

ok deraadt@

3 years agodelete .align inside sigtramp stubs, as the stack alignment requirement
deraadt [Mon, 28 Jun 2021 15:45:15 +0000 (15:45 +0000)]
delete .align inside sigtramp stubs, as the stack alignment requirement
hasn't existed for many years, since the code was moved it into a unique page,
with trap sleds.
ok kettenis

3 years agoThe state machine now takes care of setting the legacy state,
tb [Mon, 28 Jun 2021 15:36:51 +0000 (15:36 +0000)]
The state machine now takes care of setting the legacy state,
so it is no longer necessary in to do this by hand in various
places of the code interfacing with the legacy stack.

ok jsing

3 years agoExpand info callback support for TLSv1.3
tb [Mon, 28 Jun 2021 15:35:14 +0000 (15:35 +0000)]
Expand info callback support for TLSv1.3

During the TLSv1.3 handshake, update the legacy state and call the
info callback at the appropriate moment.  This is done by mapping
the TLSv1.3 states to the states in the old state machine whenever
that is possible. The callbacks are called at the beginning and end
of the handshake, and just before the state machine advances.

This should fix a periodic warning in logs of tor relays about a
variable that wasn't set although it should have been.

input/ok jsing, ok inoguchi (early version)

3 years agoHave tcpdump split the 802.11 sequence number field into its sequence number
stsp [Mon, 28 Jun 2021 14:35:42 +0000 (14:35 +0000)]
Have tcpdump split the 802.11 sequence number field into its sequence number
and fragment number components instead of printing the whole field in decimal.

ok sthen@ kn@ jca@

3 years agoplaceholder for later
espie [Mon, 28 Jun 2021 14:17:01 +0000 (14:17 +0000)]
placeholder for later

3 years agoGarbage collect loop index i which is no longer used after usage tweak.
tb [Mon, 28 Jun 2021 14:01:38 +0000 (14:01 +0000)]
Garbage collect loop index i which is no longer used after usage tweak.

3 years agoFix base-gcc -Wno-error=uninitialized
jca [Mon, 28 Jun 2021 13:47:46 +0000 (13:47 +0000)]
Fix base-gcc -Wno-error=uninitialized

base-gcc always errored out when -Werror was passed and -Wuninitialized
triggered, even when -Wno-error=uninitialized was passed.

Deemed correct by Miod

3 years agoremove old "paranoid" option, I'm pretty sure nobody uses it.
espie [Mon, 28 Jun 2021 11:25:14 +0000 (11:25 +0000)]
remove old "paranoid" option, I'm pretty sure nobody uses it.

refactor the code into figuring out simple updates: if we don't have
any @execs but just @tags, we can probably do something simpler wrt
temporary files and temporary filenames, which should speed up texlive
updates significantly.

(the tempfile code is not there yet, just the check for safe updates)

3 years agoMake anonymous object reference counting independant from the KERNEL_LOCK().
mpi [Mon, 28 Jun 2021 11:19:01 +0000 (11:19 +0000)]
Make anonymous object reference counting independant from the KERNEL_LOCK().

- Use atomic operations for increment/decrement

- Rewrite the loop from uao_swap_off() to only keep a reference to the
  next item in the list.

ok jmatthew@

3 years agoEnable dt(4).
mpi [Mon, 28 Jun 2021 11:04:14 +0000 (11:04 +0000)]
Enable dt(4).

ok kettenis@

3 years agoImplement copyin32().
kettenis [Mon, 28 Jun 2021 09:35:09 +0000 (09:35 +0000)]
Implement copyin32().

ok deraadt@

3 years agoAlso show the time spent in userland when analyzing the kernel stack
bluhm [Mon, 28 Jun 2021 08:55:06 +0000 (08:55 +0000)]
Also show the time spent in userland when analyzing the kernel stack
in flame graph.  Only when both kernel and userland are displayed,
the whole picture of system activity becomes clear.  Fixes a parsing
bug in the flame graph tool where userland time was interpreted as
invalid kernel stack.
OK kn@

3 years agoMake sure __bss_start is aligned on an 8-byte boundary. This makes sure
kettenis [Sun, 27 Jun 2021 21:39:55 +0000 (21:39 +0000)]
Make sure __bss_start is aligned on an 8-byte boundary.  This makes sure
zeroing out .bss doesn't overrun and overwrite the ELF symbol table.

ok patrick@

3 years agoUsing the MI mplock should be fine on riscv64.
kettenis [Sun, 27 Jun 2021 20:36:57 +0000 (20:36 +0000)]
Using the MI mplock should be fine on riscv64.

3 years agoTrack the sigalgs used by ourselves and our peer.
jsing [Sun, 27 Jun 2021 19:23:51 +0000 (19:23 +0000)]
Track the sigalgs used by ourselves and our peer.

Move the sigalg pointer from SSL_HANDSHAKE_TLS13 to SSL_HANDSHAKE, naming
it our_sigalg, adding an equivalent peer_sigalg. Adjust the TLSv1.3 code
that records our signature algorithm. Add code to record the signature
algorithm used by our peer.

Needed for upcoming API additions.

ok tb@

3 years agoHave ssl3_send_client_verify() pass *pkey to called functions.
jsing [Sun, 27 Jun 2021 19:16:59 +0000 (19:16 +0000)]
Have ssl3_send_client_verify() pass *pkey to called functions.

ssl3_send_client_verify() already has a pointer to the EVP_PKEY for the
certificate - pass this as an argument to the functions that it calls,
rather than duplicating code/variable declarations.

3 years agoChange ssl_sigalgs_from_value() to perform sigalg list selection.
jsing [Sun, 27 Jun 2021 18:15:35 +0000 (18:15 +0000)]
Change ssl_sigalgs_from_value() to perform sigalg list selection.

Rather that passing in a sigalg list at every call site, pass in the
appropriate TLS version and have ssl_sigalgs_from_value() perform the
sigalg list selection itself. This allows the sigalg lists to be made
internal to the sigalgs code.

ok tb@

3 years agoRename ssl_sigalg() to ssl_sigalg_from_value().
jsing [Sun, 27 Jun 2021 18:09:07 +0000 (18:09 +0000)]
Rename ssl_sigalg() to ssl_sigalg_from_value().

This makes the code more self-documenting and avoids the ambiguity between
ssl_sigalg the struct and ssl_sigalg the function.

ok tb@

3 years agoChange ssl_sigalgs_build() to perform sigalg list selection.
jsing [Sun, 27 Jun 2021 17:59:17 +0000 (17:59 +0000)]
Change ssl_sigalgs_build() to perform sigalg list selection.

Rather that doing sigalg list selection at every call site, pass in the
appropriate TLS version and have ssl_sigalgs_build() perform the sigalg
list selection itself. This reduces code duplication, simplifies the
calling code and is the first step towards internalising the sigalg lists.

ok tb@

3 years agoadd a style message about overlong text lines,
schwarze [Sun, 27 Jun 2021 17:57:13 +0000 (17:57 +0000)]
add a style message about overlong text lines,
trying very hard to avoid false positives,
not at all trying to catch as many cases as possible;

feature originally suggested by tb@,
OK tb@ kn@ jmc@

3 years agoTidy some comments and simplify some code.
jsing [Sun, 27 Jun 2021 17:50:06 +0000 (17:50 +0000)]
Tidy some comments and simplify some code.

ok tb@

3 years agoKeep sigalg initialiser order consistent - key type, then hash.
jsing [Sun, 27 Jun 2021 17:45:16 +0000 (17:45 +0000)]
Keep sigalg initialiser order consistent - key type, then hash.

This matches the order that sigalgs are specified in.

ok tb@

3 years agoAdd test coverage for TLSv1.3 client hellos.
jsing [Sun, 27 Jun 2021 17:13:23 +0000 (17:13 +0000)]
Add test coverage for TLSv1.3 client hellos.

This is a little bit clunky due to the number of things that vary (largely
thanks to middlebox compatibility mode, along with the versions and key
share extensions), however it works and can be improved at a later date.

3 years agoAdd test coverage for DTLSv1.2 client hellos.
jsing [Sun, 27 Jun 2021 16:55:46 +0000 (16:55 +0000)]
Add test coverage for DTLSv1.2 client hellos.

3 years agoImprove test coverage for SSL_OP_NO_DTLSv1.
jsing [Sun, 27 Jun 2021 16:54:55 +0000 (16:54 +0000)]
Improve test coverage for SSL_OP_NO_DTLSv1.

3 years agoCorrect handling of SSL_OP_NO_DTLSv1.
jsing [Sun, 27 Jun 2021 16:54:14 +0000 (16:54 +0000)]
Correct handling of SSL_OP_NO_DTLSv1.

When converting to TLS flags, we need to also include SSL_OP_NO_TLSv1,
otherwise the TLS equivalent of SSL_OP_NO_DTLSv1 is TLSv1.0 only, which
does not work so well when we try to switch back to DTLS versions.

3 years agoTeach hexdump() how to identify differing bytes.
jsing [Sun, 27 Jun 2021 16:40:25 +0000 (16:40 +0000)]
Teach hexdump() how to identify differing bytes.

This allows differences between the received data and the test data to be
more readily identified.

3 years agoMore appropriately set cipher_list_len when AES acceleration is available.
jsing [Sun, 27 Jun 2021 16:36:53 +0000 (16:36 +0000)]
More appropriately set cipher_list_len when AES acceleration is available.

3 years agoTweak some data types and sprinkle some const.
jsing [Sun, 27 Jun 2021 16:33:30 +0000 (16:33 +0000)]
Tweak some data types and sprinkle some const.

3 years agoIn addition to 2-byte and 3-byte UTF-8 sequences, correctly identify all
schwarze [Sun, 27 Jun 2021 15:53:33 +0000 (15:53 +0000)]
In addition to 2-byte and 3-byte UTF-8 sequences, correctly identify all
4-byte UTF-8 sequences and not just some of them, to keep them together
and avoid passing them on byte by byte, helping tools like tmux(1).

While here, also do all the range tests with < and > rather than &
for uniformity and readability, and add some comments.

Input and OK jca@ and nicm@.

Soeren at Soeren dash Tempel dot net originally reported the bug
and provided an incomplete patch that was used as a starting point,
and he also tested this final patch.

3 years agoAdd Hart State Management functions. These will be needed to spin up
kettenis [Sun, 27 Jun 2021 15:02:25 +0000 (15:02 +0000)]
Add Hart State Management functions.  These will be needed to spin up
the secondary cores.  From FreeBSD.

ok mlarkin@

3 years agoreuse armv7 installboot for riscv64
jsg [Sun, 27 Jun 2021 04:52:01 +0000 (04:52 +0000)]
reuse armv7 installboot for riscv64
ok deraadt@

3 years agoCreate DMA maps with 64-bit capability when appropriate.
visa [Sun, 27 Jun 2021 04:33:40 +0000 (04:33 +0000)]
Create DMA maps with 64-bit capability when appropriate.

OK kettenis@

3 years agoUse config register to determine if 64-bit DMA is available.
visa [Sun, 27 Jun 2021 04:32:31 +0000 (04:32 +0000)]
Use config register to determine if 64-bit DMA is available.

Suggested by and OK kettenis@

3 years agomatch on sifive,fu540-c000-gem
jsg [Sun, 27 Jun 2021 01:58:51 +0000 (01:58 +0000)]
match on sifive,fu540-c000-gem

used by the hifive unmatched device tree in mainline linux and u-boot
ok visa@

3 years agomake usage less chatty; ok mlarkin
jmc [Sat, 26 Jun 2021 18:03:45 +0000 (18:03 +0000)]
make usage less chatty; ok mlarkin

3 years agomake SYNOPSIS match usage; ok ajacoutot
jmc [Sat, 26 Jun 2021 18:02:48 +0000 (18:02 +0000)]
make SYNOPSIS match usage; ok ajacoutot

3 years agoFor some reason the riscv64 locore.S ended up with the copyright license
kettenis [Sat, 26 Jun 2021 17:38:40 +0000 (17:38 +0000)]
For some reason the riscv64 locore.S ended up with the copyright license
from the arm64 locore.S.  But the code was clearly copied from FreeBSD's
riscv64 locore.S.  The license is the same, but the author/attribution isn't.
Fix this.

ok deraadt@

3 years agoFix .Xr order. From mandoc -Tlint.
tb [Sat, 26 Jun 2021 17:36:28 +0000 (17:36 +0000)]
Fix .Xr order. From mandoc -Tlint.

3 years agodelete extra explanations in the usage: messages which are described
deraadt [Sat, 26 Jun 2021 15:42:58 +0000 (15:42 +0000)]
delete extra explanations in the usage: messages which are described
far better in the manual pages
ok jmc

3 years agoMake lazy binding work on riscv64.
kettenis [Sat, 26 Jun 2021 14:50:25 +0000 (14:50 +0000)]
Make lazy binding work on riscv64.

prompted by deraadt@

3 years agoBuild ld.so with --march=rv64imac on riscv64 to be absolutely sure that
kettenis [Sat, 26 Jun 2021 14:47:54 +0000 (14:47 +0000)]
Build ld.so with --march=rv64imac on riscv64 to be absolutely sure that
ld.so doesn't use the FP registers.

ok deraadt@

3 years agoUse AFLAGS when building syscall stubs. Drop AINC wich isn't used.
kettenis [Sat, 26 Jun 2021 14:46:48 +0000 (14:46 +0000)]
Use AFLAGS when building syscall stubs.  Drop AINC wich isn't used.

ok deraadt@

3 years agocad: Implement 64-bit DMA mode
visa [Sat, 26 Jun 2021 10:47:59 +0000 (10:47 +0000)]
cad: Implement 64-bit DMA mode

This lets the driver utilize 64-bit DMA on hardware that supports it.

Currently, riscv64 does not constrain DMA-reachable memory to the 32-bit
range. This caused memory errors with cad(4) on machines that have RAM
above 4GB in the physical address space.

Prompted by Mickael Torres

OK kettenis@

3 years agoAdd riscv64 support. From Mickael Torres.
kettenis [Sat, 26 Jun 2021 09:24:51 +0000 (09:24 +0000)]
Add riscv64 support.  From Mickael Torres.

ok matthieu@, jsg@

3 years agoAdd powerpc64 and riscv64 to the list of architectures that have DRM.
kettenis [Sat, 26 Jun 2021 09:23:24 +0000 (09:23 +0000)]
Add powerpc64 and riscv64 to the list of architectures that have DRM.

ok matthieu@, deraadt@, jsg@

3 years agoRevert last change, which is under an #ifdef __linux__ block so no used.
matthieu [Sat, 26 Jun 2021 06:54:00 +0000 (06:54 +0000)]
Revert last change, which is under an #ifdef __linux__ block so no used.

noticed by jsg@

3 years agoriscv64 struct cpu_info has ci_idepth
jsg [Sat, 26 Jun 2021 02:02:47 +0000 (02:02 +0000)]
riscv64 struct cpu_info has ci_idepth

3 years agosync
jsg [Sat, 26 Jun 2021 00:48:28 +0000 (00:48 +0000)]
sync

3 years agoadd /dev/dri/card0 and /dev/dri/renderD128
jsg [Sat, 26 Jun 2021 00:43:28 +0000 (00:43 +0000)]
add /dev/dri/card0 and /dev/dri/renderD128
ok deraadt@

3 years agoadd /dev/dri/
jsg [Sat, 26 Jun 2021 00:38:38 +0000 (00:38 +0000)]
add /dev/dri/
ok deraadt@

3 years agolet pfsync_request_update actually retry when it overfills a packet.
dlg [Fri, 25 Jun 2021 23:48:30 +0000 (23:48 +0000)]
let pfsync_request_update actually retry when it overfills a packet.

a continue in the middle of a do { } while (0) loop is effectively
a break, it doesnt restart the loop.

without the retry, the code leaked update messages which in turn
made pool_destroy in pfsync destroy trip over a kassert cos items
were still out.

found by and fix tested by hrvoje popovski
ok sashan@

3 years agoMove unused eficall.h files to the Attic.
krw [Fri, 25 Jun 2021 20:40:23 +0000 (20:40 +0000)]
Move unused eficall.h files to the Attic.

3 years agoClean up and remove debug prints, and add a few more relevant prints for
patrick [Fri, 25 Jun 2021 19:55:22 +0000 (19:55 +0000)]
Clean up and remove debug prints, and add a few more relevant prints for
when things go wrong.

3 years agobasic radeondrm / X support for riscv64. Ok kettenis@
matthieu [Fri, 25 Jun 2021 19:27:40 +0000 (19:27 +0000)]
basic radeondrm / X support for riscv64. Ok kettenis@

- add wscons devices
- build radeondrm and add MD uvm bits to support it.

3 years agoReplace instances of the magic number '64' with a nice #define
krw [Fri, 25 Jun 2021 19:24:53 +0000 (19:24 +0000)]
Replace instances of the magic number '64' with a nice #define
BLOCKALIGNMENT. This will make it more obvious where this
512-byte block count could/should be converted to a disk sector
count.

No functional change.

3 years agoadd SIZE_MAX. ok kettenis@
matthieu [Fri, 25 Jun 2021 19:22:51 +0000 (19:22 +0000)]
add SIZE_MAX. ok kettenis@

3 years agoMake sure we translate prefetchable mmio space as well.
kettenis [Fri, 25 Jun 2021 18:55:26 +0000 (18:55 +0000)]
Make sure we translate prefetchable mmio space as well.

From Mickael Torres.

3 years ago1) Finish eliminating all uses of EFI_CALL() used in the tree, allowing for the
krw [Fri, 25 Jun 2021 17:49:49 +0000 (17:49 +0000)]
1) Finish eliminating all uses of EFI_CALL() used in the tree, allowing for the
removal of eficall.h files.

2) Allow booting from 4k-byte sector devices.

3) Don't leak memory after successfull i/o.

The end result is that riscv64 efidev.c and efipxe.c are identical to the
arm64/armv7 versions, efirng.c is identical to the amd64/arm64 versions and
efiboot.c has only the arm64 -> riscv64 changes.

ok kettenis@

3 years agoWhile it seems like we can choose any I/O virtual address for peripheral
patrick [Fri, 25 Jun 2021 17:41:22 +0000 (17:41 +0000)]
While it seems like we can choose any I/O virtual address for peripheral
devices, this isn't really the case.  It depends on the bus topology of
how devices are connected.  In the case of PCIe, devices are assigned
addresses (in PCI BARs) from the PCI address spaces.  Now if we take an
address from one of these address spaces for our IOVA, transfers from
from a PCI device to that address will terminate inside of the PCI bus.
This is because from the PCI buses' point-of-view, the address we chose
is part of its address space.  To make sure we don't allocate addresses
from there, reserve the PCI addresses in the IOVA.

Note that smmu(4) currently gives each device its own IOVA.  So the PCI
addresses will be reserved only in IOVA from PCI devices, and only the
addresses concerning the PCI bus it is connected to will be reserved.
All other devices behind an smmu(4) will not have any changes to their
IOVA.

ok kettenis@

3 years agoAllow (w)hole disk allocation for GPT disks. Use fdisk -A when Apple APFS ISC
krw [Fri, 25 Jun 2021 17:27:07 +0000 (17:27 +0000)]
Allow (w)hole disk allocation for GPT disks. Use fdisk -A when Apple APFS ISC
partition is detected. Otherwise the normal big hammer fdisk -ig.

Only create EFI SYS boot partition on GPT disks that are the ROOTDISK.

ok kettenis@ deraadt@

3 years agoadd linux style memory barriers for risc-v to drm
jsg [Fri, 25 Jun 2021 13:41:09 +0000 (13:41 +0000)]
add linux style memory barriers for risc-v to drm

based on linux operation to rvwmo mapping table in
the rvwmo appendix of the risc-v unprivileged isa spec

ok kettenis@

3 years agoRemove an unused struct.
visa [Fri, 25 Jun 2021 13:29:40 +0000 (13:29 +0000)]
Remove an unused struct.

3 years agouse weaker fences for riscv64 membar
jsg [Fri, 25 Jun 2021 13:25:53 +0000 (13:25 +0000)]
use weaker fences for riscv64 membar

Fences are described in 'RISC-V Unprivileged ISA' syntax is
'fence predecessor,successor'.

"Any combination of device input (I), device output (O), memory reads (R),
and memory writes (W) may be ordered with respect to any combination
of the same."

Previously "fence" was used for membar_* which is short for
"fence iorw,iorw".  Change this to more specific fences based on the
text in membar_sync(9) with store -> w, load -> r.

build test by and ok kettenis@

3 years agoSave quite a bit of space by removing the existence of PTEDs. The
patrick [Fri, 25 Jun 2021 12:40:29 +0000 (12:40 +0000)]
Save quite a bit of space by removing the existence of PTEDs.  The
dynamics of SMMU are a bit different to regular MMU usage, as we do
not need P->V lists or ref/mod emulation (with page access upgrade).
While in the future we might want to save cacheability modes, it is
not necessary right now.  Our PTED construct, which holds that kind
of information, is not needed.  With these gone, we save around 93%
of smmu(4)'s previous memory overhead.

Discussed with drahn@ kettenis@

3 years agoThe network flush code only operates on peerself (like all the other
claudio [Fri, 25 Jun 2021 09:25:48 +0000 (09:25 +0000)]
The network flush code only operates on peerself (like all the other
network commands). Instead of passing the peer as argument to the tree
walker just default to peerself in network_flush_upcall().
OK benno@

3 years agoDo the multiprotocol check first for the IPv4 case. So it is the same
claudio [Fri, 25 Jun 2021 09:23:26 +0000 (09:23 +0000)]
Do the multiprotocol check first for the IPv4 case. So it is the same
everywhere.
OK benno@

3 years agofix decoding of X.509 subject name; from Leif Thuresson via bz3327
djm [Fri, 25 Jun 2021 06:30:22 +0000 (06:30 +0000)]
fix decoding of X.509 subject name; from Leif Thuresson via bz3327
ok markus@

3 years agoUse better language to refer to the user. From l1ving via github
dtucker [Fri, 25 Jun 2021 06:20:39 +0000 (06:20 +0000)]
Use better language to refer to the user.  From l1ving via github
PR#250, ok jmc@

3 years agosync set sizes with latest snapshot
jsg [Fri, 25 Jun 2021 05:22:02 +0000 (05:22 +0000)]
sync set sizes with latest snapshot
initial sizes were from arm64

3 years agosync set sizes with latest snapshot
jsg [Fri, 25 Jun 2021 04:51:52 +0000 (04:51 +0000)]
sync set sizes with latest snapshot
initial sizes were from arm64

3 years agoReplace SIGCHLD/notify_pipe kludge with pselect.
dtucker [Fri, 25 Jun 2021 03:38:17 +0000 (03:38 +0000)]
Replace SIGCHLD/notify_pipe kludge with pselect.

Previously sshd's SIGCHLD handler would wake up select() by writing a
byte to notify_pipe.  We can remove this by blocking SIGCHLD, checking
for child terminations then passing the original signal mask through
to pselect.  This ensures that the pselect will immediately wake up if
a child terminates between wait()ing on them and the pselect.

In -portable, for platforms that do not have pselect the kludge is still
there but is hidden behind a pselect interface.

Based on other changes for bz#2158, ok djm@

3 years agominimalistic diff to use %ld instead of %d for ptrdiff printing
deraadt [Fri, 25 Jun 2021 01:36:04 +0000 (01:36 +0000)]
minimalistic diff to use %ld instead of %d for ptrdiff printing

3 years agoPull in support from a future clang for __GCC_HAVE_SYNC_COMPARE_AND_SWAP_x
deraadt [Fri, 25 Jun 2021 01:35:13 +0000 (01:35 +0000)]
Pull in support from a future clang for __GCC_HAVE_SYNC_COMPARE_AND_SWAP_x
defines because we need it now
from https://reviews.llvm.org/D91784
ok mlarkin kettenis

3 years agoalarm(3): remove superfluous pointer
cheloha [Thu, 24 Jun 2021 22:43:31 +0000 (22:43 +0000)]
alarm(3): remove superfluous pointer

The pointer `itp' doesn't serve any purpose here, remove it.

Since we're changing these lines, we may as well rename `it' to `itv'
to match the existing `oitv'.

Thread: https://marc.info/?l=openbsd-tech&m=162380665115598&w=2

ok millert@