kettenis [Thu, 10 Nov 2022 11:23:21 +0000 (11:23 +0000)]
arm64 can suspend without PSCI support now
ok deraadt@, phessler@
krw [Thu, 10 Nov 2022 11:02:26 +0000 (11:02 +0000)]
Regen
mbuhl [Thu, 10 Nov 2022 10:47:30 +0000 (10:47 +0000)]
A theoretical path exists where ext.data1 is not initialized by
parseextcommunity but used afterwards.
Found by codechecker.
OK claudio
kettenis [Thu, 10 Nov 2022 10:37:40 +0000 (10:37 +0000)]
Put CPUs in the lowest P-state just before the final suspend step. The
firmware probably does this for us on ACPI systems with proper S3 support,
but this doesn't happen on systems where we park CPUs in a low-power idle
state ourselves.
ok deraadt@
tb [Thu, 10 Nov 2022 10:24:50 +0000 (10:24 +0000)]
Move bn_prime.h to the public domain.
It's entirely trivial.
ok beck
krw [Thu, 10 Nov 2022 09:50:00 +0000 (09:50 +0000)]
Nuke Vax (ra,rx) and HP-300 (hd) devices.
Noticed by kn@
ok millert@
jmatthew [Thu, 10 Nov 2022 08:26:54 +0000 (08:26 +0000)]
Convert amd64 clock and ipi event counters to per-cpu
ok kettenis@ jca@ cheloha@
deraadt [Thu, 10 Nov 2022 08:17:53 +0000 (08:17 +0000)]
change default output to -a format; ok tb
jmatthew [Thu, 10 Nov 2022 07:08:01 +0000 (07:08 +0000)]
Convert sparc64 clock event counter to per-cpu and increment using
evcount_inc() rather than atomic operations.
ok kettenis@ jca@ cheloha@
jmatthew [Thu, 10 Nov 2022 07:05:41 +0000 (07:05 +0000)]
Add support for per-cpu event counters, to be used for clock and IPI
counters where the event being counted occurs across all CPUs in the
system. Counter instances can be made per-cpu by calling evcount_percpu()
after the counter is attached, and this can occur before or after all system
CPUs are attached. Per-cpu counter instances should be incremented using
evcount_inc().
ok kettenis@ jca@ cheloha@
asou [Thu, 10 Nov 2022 02:47:52 +0000 (02:47 +0000)]
Return error number instead of call panic().
ok mpi@
mbuhl [Thu, 10 Nov 2022 00:44:12 +0000 (00:44 +0000)]
In case RSA_meth_new fails, errstr would be passed to fatalx without
initialization.
OK tb
jsg [Thu, 10 Nov 2022 00:14:11 +0000 (00:14 +0000)]
fix build after 1.298
mbuhl [Thu, 10 Nov 2022 00:00:11 +0000 (00:00 +0000)]
always call va_end.
ok tb
joshua [Wed, 9 Nov 2022 23:33:08 +0000 (23:33 +0000)]
Start migrating to one source file per line.
ok jsing@ tb@
tb [Wed, 9 Nov 2022 23:28:08 +0000 (23:28 +0000)]
Remove prime_t remnant and link bn_primes test statically
jsing [Wed, 9 Nov 2022 23:14:51 +0000 (23:14 +0000)]
Sync CBS_strdup() documentation update from libcrypto.
sashan [Wed, 9 Nov 2022 23:00:00 +0000 (23:00 +0000)]
simplify expiration of 'once' rules.
let packet to mark 'once' rule as expired. The rule
will be removed by pfctl(8) when rules are updated.
OK kn@
tobhe [Wed, 9 Nov 2022 22:56:44 +0000 (22:56 +0000)]
Hook up gpiobl(4) to the screen burner instead of wsdisplay(4) brightness
control. This enables automatic screen blanking with X and wscons(4) once
wsfb(4) is fixed.
"this is fine for now" kettenis@
tb [Wed, 9 Nov 2022 22:52:51 +0000 (22:52 +0000)]
Move table in bn_primes.h to a .c file and get rid of prime_t
This way we deduplicate two inclusions of the same big table and eliminate
lots of stupid casts.
input and ok many
claudio [Wed, 9 Nov 2022 22:25:36 +0000 (22:25 +0000)]
Remove kernel lock here since msleep() with PCATCH no longer requires it.
OK mpi@
krw [Wed, 9 Nov 2022 22:25:27 +0000 (22:25 +0000)]
No more xd/xy devs.
deraadt [Wed, 9 Nov 2022 22:25:08 +0000 (22:25 +0000)]
Some limited setsockopt/getsockopt are allowed in pledge "stdio".
Also allow IPPROTO_TCP:TCP_NODELAY
It is very small kernel code, and will allow some software to drop "inet"
requested by djm
krw [Wed, 9 Nov 2022 22:18:53 +0000 (22:18 +0000)]
Regen
dlg [Wed, 9 Nov 2022 22:15:50 +0000 (22:15 +0000)]
revert r1.673: replace SRP with SMR in the if_idxmap.
if the map has to be reallocated during boot, there's an smr_barrier
waiting for the old map to become unused. that barrier ends up
waiting for cpus that aren't running yet because we haven't finished
booting yet, so boot gets stuck.
found by hrvoje popovski
kn [Wed, 9 Nov 2022 22:12:40 +0000 (22:12 +0000)]
Constify simplefb_formats[]; OK patrick
patrick [Wed, 9 Nov 2022 20:00:05 +0000 (20:00 +0000)]
Enable qcpwm(4)
ok kettenis@ mlarkin@
patrick [Wed, 9 Nov 2022 19:59:38 +0000 (19:59 +0000)]
Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.
ok kettenis@ mlarkin@
deraadt [Wed, 9 Nov 2022 19:50:25 +0000 (19:50 +0000)]
Now that dlopen() sets object->nodelete for RTLD_NODELETE, _dl_load_dep_libs()
can consider this same as the "booting" case, and instruct lower layers to
do immutability. With this change in place, the not-yet-commited
library-immutable diff leaves 1 page of libc (malloc related) and 6
non-RTLD_NODELETE libraries mutable in chrome.
Everything else is immutable, except for the program's transient memory
allocations & file mappings. This is an unexpected result.
krw [Wed, 9 Nov 2022 19:35:23 +0000 (19:35 +0000)]
Remove xy/xd. SMD left with sparc.
ok kn@ deraadt@
patrick [Wed, 9 Nov 2022 19:25:50 +0000 (19:25 +0000)]
Move input/output configuration into the correct function.
kettenis [Wed, 9 Nov 2022 19:18:11 +0000 (19:18 +0000)]
Implement wakeup interrupt support. For now this is only implemented for
aplintc(4); other arm64 interrupt controllers will follow.
ok patrick@
jsing [Wed, 9 Nov 2022 19:18:08 +0000 (19:18 +0000)]
Fix up indentation for EVP_PKEY_* defines.
mbuhl [Wed, 9 Nov 2022 19:11:14 +0000 (19:11 +0000)]
nreq could leak a http get request in case a redirect without
location header was received.
OK deraadt
jsing [Wed, 9 Nov 2022 19:05:42 +0000 (19:05 +0000)]
Revise CBS_strdup() documentation.
CBS_strdup() now internally checks if the data contains NUL, failing if it
does.
Prompted by beck@
mbuhl [Wed, 9 Nov 2022 18:48:11 +0000 (18:48 +0000)]
In do_zzz a garbage stack value could be accessed in case a read
or write in send_command failed.
Found by codechecker.
OK deraadt
krw [Wed, 9 Nov 2022 18:46:04 +0000 (18:46 +0000)]
Remove xy/xd. SMD left with sparc.
ok kn@ deraadt@
deraadt [Wed, 9 Nov 2022 18:44:11 +0000 (18:44 +0000)]
dlopen() with RTLD_NODELETE should also set the object nodelete flag,
so the mapping layer will know it can use mimmutable()
deraadt [Wed, 9 Nov 2022 18:39:35 +0000 (18:39 +0000)]
Since the introduction of automatic immutable from the kernel, the munmap()
of ld.so boot.text region is now (silently) failing because the region is
contained within the text LOAD, which is immutable. So create a new btext
LOAD with flags PF_X|PF_R|PF_OPENBSD_MUTABLE, and place all boot.text objects
in there. This LOAD must also be page-aligned so it doesn't skip unmapping
some of the object region, previously it was hilariously unaligned.
ok kettenis and guenther seemed to like it also
This one is for 32-bit arm, tested by phessler
jsing [Wed, 9 Nov 2022 18:25:36 +0000 (18:25 +0000)]
Clean up EVP_PKEY_METHOD related tables and code.
This is effectively the same as done for EVP_PKEY_ASN1_METHOD, although
this table only has nine entries.
ok tb@
job [Wed, 9 Nov 2022 18:17:23 +0000 (18:17 +0000)]
Error out if a ROA payload contains too many ipAddrBlocks
The ASN.1 profile in draft-ietf-sidrops-rfc6482bis section 4 specifies
that there must not be more than 2 ipAddrBlocks (one for IPv4, and one
for IPv6). Compatible with all published ROAs.
OK tb@
jsing [Wed, 9 Nov 2022 18:17:16 +0000 (18:17 +0000)]
Clean up EVP_PKEY_ASN1_METHOD related tables and code.
Rather than messing around with an OBJ_bsearch() for a table that contains
16 entries (and a stack find for any application added methods), simply do
a reverse linear scan. This maintains the application method first
behaviour, while removing a chunk of code.
While here rename some variables and do some style clean up.
ok tb@
kettenis [Wed, 9 Nov 2022 18:17:00 +0000 (18:17 +0000)]
Add suspend/resume support to aplns(4).
ok dlg@, patrick@
claudio [Wed, 9 Nov 2022 18:12:47 +0000 (18:12 +0000)]
Simplify the overly complex VXLOCK handling in spec_close.
The code only needs to know if the vnode is exclusive locked and this
can be done on entry of the function.
OK mpi@
beck [Wed, 9 Nov 2022 18:11:45 +0000 (18:11 +0000)]
Add tests for boundary conditions of struct tm.
Struct tm is limited by it's year being an int.
kn [Wed, 9 Nov 2022 18:00:02 +0000 (18:00 +0000)]
ndp, route, netstat: adjust ipv6 address width
It has been annoying me for too long that fully specififed GUAs
(2001:0db8:3333:4444:5555:6666:7777:8888) mess up alignment.
systat(1)'s netstat is the only view that has a big enough limit and thus
never misaligns.
Unify ndp(8), route(8) and netstat(1) views to always align nicely.
Feedback OK claudio
dv [Wed, 9 Nov 2022 17:53:12 +0000 (17:53 +0000)]
vmm(4): treat vcpu lists as immutable, reducing complexity.
Since vmm doesn't support hot-plug vcpus we can reduce complexity
by treating the vcpu list per vm as immutable after creation.
As a consequence, we can use the vm reference count to protect the
lifetime of the vcpus, removing the need for reference counting
individual vcpu objects. With an immutable list, we no longer need
a rwlock protecting it either.
Original diff from dlg@ that I reworked and tested.
ok dlg@, mlarkin@
jsing [Wed, 9 Nov 2022 17:49:54 +0000 (17:49 +0000)]
Revise
ED25519 regress following API changes.
jsing [Wed, 9 Nov 2022 17:45:55 +0000 (17:45 +0000)]
Make X25519_public_from_private() internally reachable.
claudio [Wed, 9 Nov 2022 17:41:05 +0000 (17:41 +0000)]
Before printing the redirect URI pass it through stravis since it is
untrusted input.
OK tb@ kn@ millert@
jsing [Wed, 9 Nov 2022 17:40:51 +0000 (17:40 +0000)]
Rename public_value to public_key for consistency.
ok tb@
jsing [Wed, 9 Nov 2022 17:39:29 +0000 (17:39 +0000)]
Rework
ED25519 API.
BoringSSL implemented a compound private key, which includes a copy of the
public key as a performance optimisation for signing. However, this does
not readily match with how EVP works, makes the
ED25519 API inconsistent
with the X25519 API, diverges from th RFC and does not align with the
OpenSSL API. Instead, the caller can readily compute the public key and
pass this in to the signing process.
ok tb@
jsing [Wed, 9 Nov 2022 17:15:59 +0000 (17:15 +0000)]
Add some regress coverage for EVP_PKEY_METHOD.
cheloha [Wed, 9 Nov 2022 17:12:50 +0000 (17:12 +0000)]
timeout(9): remove TIMEOUT_KCLOCK flag
I never should have added the TIMEOUT_KCLOCK flag. It is redundant
and only serves to complicate the timeout(9) logic. In every place
where we check for the flag we can just use timeout.to_kclock.
So, remove the flag from <sys/timeout.h> and rewrite all affected
logic to use the value of timeout.to_kclock instead.
ok kn@
jsing [Wed, 9 Nov 2022 17:03:53 +0000 (17:03 +0000)]
Sort EVP_PKEY_METHOD externs.
claudio [Wed, 9 Nov 2022 16:29:58 +0000 (16:29 +0000)]
Strip spaces at end of header lines and in chunked encoding headers.
HTTP standard allows for spaces in too many places
OK millert@ tb@
kettenis [Wed, 9 Nov 2022 16:23:51 +0000 (16:23 +0000)]
Make aplpmgr(4) work as a reset controller.
ok patrick@
jsing [Wed, 9 Nov 2022 16:14:15 +0000 (16:14 +0000)]
Sort EVP_PKEY_ASN1_METHOD externs.
jsing [Wed, 9 Nov 2022 16:13:39 +0000 (16:13 +0000)]
Add some regress coverage for EVP_PKEY_ASN1_METHOD
tb [Wed, 9 Nov 2022 15:33:13 +0000 (15:33 +0000)]
Inline use of bn_is_prime_bpsw()
Instead of using the BN_is_prime_fasttime_ex() API, use a direct call to
bn_is_prime_bpsw(). This increases readability and simplifies error
handling. Also put a division by two to the natural place now that we no
longer need to do Miller-Rabin rounds.
ok beck jsing
krw [Wed, 9 Nov 2022 15:17:28 +0000 (15:17 +0000)]
Use nitems() instead of a terminating { NULL, NULL } entry.
claudio [Wed, 9 Nov 2022 15:01:24 +0000 (15:01 +0000)]
Add missin 'e' in comment.
OK dlg@
claudio [Wed, 9 Nov 2022 14:31:31 +0000 (14:31 +0000)]
Enable l3vpn test
claudio [Wed, 9 Nov 2022 14:26:14 +0000 (14:26 +0000)]
Properly handle L3VPN routes in kroute. This got broken while reworking
large part of the code.
Issue reported and fix tested by Bars Bars tutbaranov (at) gmail.com
OK tb@
claudio [Wed, 9 Nov 2022 14:23:53 +0000 (14:23 +0000)]
Fix nlri parsing of L3VPN prefixes in withdrawals.
L3VPN NLRI have different encoding for updates and withdraws. The withdraw
carries one dummy MPLS label that needs to be skipped. The code doing that
did adjust the lenght but did not skip the the label in the buffer and so
the parsed prefix was off by 3 bytes.
OK tb@
claudio [Wed, 9 Nov 2022 14:20:11 +0000 (14:20 +0000)]
Show the MPLS label of a L3VPN route in show fib output.
OK tb@
patrick [Wed, 9 Nov 2022 13:46:11 +0000 (13:46 +0000)]
Implement reading/writing pins on qcpmicgpio(4).
kn [Wed, 9 Nov 2022 13:09:30 +0000 (13:09 +0000)]
Recommit r1.669 "Unlock SIOCIFGCLONERS"
OK mvs
kn [Wed, 9 Nov 2022 13:08:36 +0000 (13:08 +0000)]
Push kernel lock from ifioctl() into ifioctl_get()
Recommit these two together:
- r1.667 "Push kernel lock into ifioctl_get()"
locked before the switch() without unlocking in its cases
- r1.668 "Push kernel lock inside ifioctl_get()"
locked cases individually, as intended
I messed up splitting commits, but of course, Hrvoje managed to test a
CVS checkout right inbetween those two.
OK mpi mvs
joshua [Wed, 9 Nov 2022 12:13:08 +0000 (12:13 +0000)]
Remove unnecessary sizeof
ok jsing@ tb@
joshua [Wed, 9 Nov 2022 12:10:17 +0000 (12:10 +0000)]
Remove unnecessary sizeof
ok jsing@ tb@
tb [Wed, 9 Nov 2022 11:31:51 +0000 (11:31 +0000)]
Next pass of bn_prime.c cleanup
Garbage collect a few pointless variables and remove a loop that wasn't
really a loop. Simplify BN_CTX handling and drop some stupid comments.
ok jsing miod
dlg [Wed, 9 Nov 2022 10:41:18 +0000 (10:41 +0000)]
replace SRP with SMR in the if_idxmap.
when i first wrote if_idxmap i didn't realise (and no one thought
to tell me) that index 0 was special and means "no interface", so
while here use the 0th slot in the interface map to store the length
of the map instead of prepending the map with a length field.
if_get() now special cases index 0 and returns NULL directly. this
also means the size of the map is now always a power of 2, which
is a nicer fit with what the kernel malloc aprovides.
tweaks and ok visa@
mpi [Wed, 9 Nov 2022 10:27:01 +0000 (10:27 +0000)]
regen
krw [Wed, 9 Nov 2022 10:26:37 +0000 (10:26 +0000)]
gpt_get_fstype() doesn't modify its parameter so make said
parameter const.
mpi [Wed, 9 Nov 2022 10:26:28 +0000 (10:26 +0000)]
Mark sched_yield(2) as NOLOCK.
All the fields accessed in this syscall are protected by the SCHED_LOCK()
so it isn't necessary to wait for another CPU to release the KERNEL_LOCK()
before that.
ok claudio@
sthen [Wed, 9 Nov 2022 10:23:01 +0000 (10:23 +0000)]
add an example for adding a cloning host route to reach a gateway which is
outside the subnet, some hosting providers use this. info from Eric JACQUOT
ok florian kn phessler
dlg [Wed, 9 Nov 2022 10:19:20 +0000 (10:19 +0000)]
vmm on !MULTIPROCESSOR kernels should still mark vpus with pending intrs.
the #ifdef MULTIPROCESSOR was a little broad.
still grateful to anton and stsp for unbreaking the tree though.
espie [Wed, 9 Nov 2022 10:10:53 +0000 (10:10 +0000)]
document '=' as a pkgspec
robert [Wed, 9 Nov 2022 10:05:18 +0000 (10:05 +0000)]
translate Fn+(1-10,-,=) keys to F1-F12 on M1 laptops with a touchbar
ok kettenis@, miod@
robert [Wed, 9 Nov 2022 10:03:22 +0000 (10:03 +0000)]
regen
robert [Wed, 9 Nov 2022 10:03:04 +0000 (10:03 +0000)]
add a USB ID for WELLSPRINGM1_J293 to be used by aplhidev(4) to identify
M1 laptops with touchbars
dtucker [Wed, 9 Nov 2022 09:04:12 +0000 (09:04 +0000)]
Fix typo in fatal error message. Patch from vapier at chromium.org.
dtucker [Wed, 9 Nov 2022 09:01:52 +0000 (09:01 +0000)]
Remove errant colon and simplify format string in error messages.
Patch from vapier at chromium.org.
miod [Wed, 9 Nov 2022 07:20:12 +0000 (07:20 +0000)]
Remove old-style eeprom mentions and relevant leftover code; ok kettenis@
miod [Wed, 9 Nov 2022 07:11:30 +0000 (07:11 +0000)]
Minor cleanups:
- remove unused pmap_vp_remove function.
- remove obviously not-applying-to-this-situation comment in
_pmap_kenter_pa(), copied from pmap_enter() (where it is legit).
- make the PTED_xxx accessors inline.
- actually use PTED_WIRED() rather than inlining it everywhere.
ok mpi@ kettenis@
jmc [Wed, 9 Nov 2022 06:48:29 +0000 (06:48 +0000)]
use Fn; from josiah frentsos
stsp [Wed, 9 Nov 2022 06:32:58 +0000 (06:32 +0000)]
unbreak GENERIC build on amd64; patch by anton@
vmm.c:900:3: error: implicit declaration of function 'x86_send_ipi' is
invalid in C99 [-Werror,-Wimplicit-function-declaration]
tb [Wed, 9 Nov 2022 02:01:13 +0000 (02:01 +0000)]
Drop some dead code
ok jsing
djm [Wed, 9 Nov 2022 01:37:44 +0000 (01:37 +0000)]
rename client_global_hostkeys_private_confirm() to
client_global_hostkeys_prove_confirm(), as it handles the
"hostkeys-prove00@openssh.com" message; no functional change
tobhe [Wed, 9 Nov 2022 01:05:45 +0000 (01:05 +0000)]
Fix possible memory leak in BN_mpi2bn() if BN_bin2bn() fails.
found with CodeChecker
feedback from millert@
ok tb@
djm [Wed, 9 Nov 2022 00:15:59 +0000 (00:15 +0000)]
typo in comment
mbuhl [Tue, 8 Nov 2022 23:19:09 +0000 (23:19 +0000)]
In case lh_OBJ_NAME_insert returns NULL due to a failed malloc, onp
is leaked in OBJ_NAME_add.
ok tb
Found by CodeChecker.
kn [Tue, 8 Nov 2022 21:07:33 +0000 (21:07 +0000)]
Revert lock changes inside ifioctl_get()
WITNESS isn't happy with r1.667 "Push kernel lock into ifioctl_get()", so
revert it (including r1.668 and r1.669 depending on it):
witness: userret: returning with the following locks held:
exclusive kernel_lock &kernel_lock r = 0 (0xffffffff82455f58)
#0 witness_lock+0x311
#1 ifioctl_get+0x2e
#2 sys_ioctl+0x2c4
#3 syscall+0x384
#4 Xsyscall+0x128
panic: witness_warn
Stopped at db_enter+0x10: popq %rbp
TID PID UID PRFLAGS PFLAGS CPU COMMAND
* 70588 52613 0 0x3 0 4K pfctl
So back to the drawing board while leaving documentation bits (r1.670).
Thanks Hrvoje.
mlarkin [Tue, 8 Nov 2022 20:41:36 +0000 (20:41 +0000)]
KNF/whitespace - no code change
patrick [Tue, 8 Nov 2022 19:52:40 +0000 (19:52 +0000)]
Tedu spmi bus definition that moved over to the fdt files.
patrick [Tue, 8 Nov 2022 19:49:34 +0000 (19:49 +0000)]
Hook up all those Qualcomm SoC SPMI devices.
patrick [Tue, 8 Nov 2022 19:47:05 +0000 (19:47 +0000)]
Add qcrtc(4), a driver for the RTC found on Qualcomm PMICs. Unfortunately
on the Lenovo x13s it does not seem to contain the offset from 1970. Also
we are not allowed to write to the RTC.
I was told that the offset I need to calculate the actual date is sorted in
an UEFI variable, which can be accessed over a secure channel. So as long
as we don't have that channel, this driver is useless. Good start though.
ok kettenis@
patrick [Tue, 8 Nov 2022 19:44:28 +0000 (19:44 +0000)]
Add qcpon(4), a driver for the Qualcomm PMIC block that hosts the powerkey
and reset input. With this I can use the power button on my x13s to power
off the machine.
ok kettenis@
patrick [Tue, 8 Nov 2022 19:42:10 +0000 (19:42 +0000)]
Add qcpmicgpio(4), a driver for the GPIO block inside the Qualcomm PMICs.
This driver is not completed yet, but good enough to be worked on in-tree.
ok kettenis@