openbsd
2 months agouse INTEL_INFO for early platform tests in inteldrm_attach()
jsg [Mon, 12 Aug 2024 01:49:49 +0000 (01:49 +0000)]
use INTEL_INFO for early platform tests in inteldrm_attach()

runtime IS_PLATFORM tests are not setup until

inteldrm_attachhook
i915_driver_probe
i915_driver_early_probe
intel_device_info_runtime_init_early
intel_device_info_subplatform_init

2 months agoAdd missing refcnt.h header to fix libkvm build.
mvs [Sun, 11 Aug 2024 21:07:05 +0000 (21:07 +0000)]
Add missing refcnt.h header to fix libkvm build.

Reported and ok tb.

2 months agoEven though US-ASCII (= ANSI X3.4-1986) only defines 128 characters,
schwarze [Sun, 11 Aug 2024 18:24:43 +0000 (18:24 +0000)]
Even though US-ASCII (= ANSI X3.4-1986) only defines 128 characters,
the POSIX standard explicitly requires in section 6.2 that "the POSIX
locale shall contain 256 single-byte characters", see:
https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap06.html#tag_06_02

So the current behaviour of treating non-ASCII bytes in an LC_CTYPE=POSIX
input stream as if they were characters is not a POSIX violation, but
actually required by the standard - and not just for awk(1), but for
utility programs in general and even for library functions in general.
Consequently, delete the wrong sentence i added to the STANDARDS section
last year.

Thanks to millert@ and jmc@ for making me realize my mistake.
OK millert@ jmc@

2 months agodelete correct ACPI_SST_WAKING, pointed out by kettenis
deraadt [Sun, 11 Aug 2024 17:30:28 +0000 (17:30 +0000)]
delete correct ACPI_SST_WAKING, pointed out by kettenis

2 months agoMake exit1() wait sysctl(2) `allprocess' loops.
mvs [Sun, 11 Aug 2024 15:10:53 +0000 (15:10 +0000)]
Make exit1() wait sysctl(2) `allprocess' loops.

Regardless on wired userland memory, KERN_FILE_BYPID and KERN_FILE_BYUID
`allprocess' loops have netlock provided sleep points, so concurrent
process exit(1) could crash kernel.

The main exit1() problem is that process teardown begins while process
is still linked to `allprocess' list, and current code doesn't allow to
unlink it first. Wait for concurrent sysctl(2) `allprocess' loops
between PS_EXITING bit setting and list unlinking. Both KERN_FILE_BYPID
and KERN_FILE_BYUID loops do PS_EXITING check and won't deal with dying
process. Concurrent exit1() thread will wait loops keeping process
linked to `allprocess' list.

Tested with i386 dpb(1) run.
Stress tests and ok bluhm.

2 months agoAdd include path for crypto_arch.h.
jsing [Sun, 11 Aug 2024 13:05:43 +0000 (13:05 +0000)]
Add include path for crypto_arch.h.

2 months agoAdd include path for crypto_arch.h.
jsing [Sun, 11 Aug 2024 13:04:46 +0000 (13:04 +0000)]
Add include path for crypto_arch.h.

2 months agoProvide and use crypto_arch.h.
jsing [Sun, 11 Aug 2024 13:02:39 +0000 (13:02 +0000)]
Provide and use crypto_arch.h.

Provide a per architecture crypto_arch.h - this will be used in a similar
manner to bn_arch.h and will allow for architecture specific #defines and
static inline functions. Move the HAVE_AES_* and HAVE_RC4_* defines here.

ok tb@

2 months agowhitespace, no binary change
florian [Sun, 11 Aug 2024 11:56:08 +0000 (11:56 +0000)]
whitespace, no binary change

2 months agoMention H6 & H616 chipsets. ok patrick@
dtucker [Sun, 11 Aug 2024 08:25:12 +0000 (08:25 +0000)]
Mention H6 & H616 chipsets.  ok patrick@

2 months agorework DESCRIPTION for both dhcpleased(8) and slaacd(8) to more accurately
jmc [Sun, 11 Aug 2024 06:07:37 +0000 (06:07 +0000)]
rework DESCRIPTION for both dhcpleased(8) and slaacd(8) to more accurately
reflect how they work, to emphasize that they do nothing unless auto conf
is set, and to more closely match each other;

prompted by a diff from andrew christopher hawk on tech, who noted a wonky
sentence;

help/feedback deraadt florian; ok deraadt

2 months agoforgot the suspend-time duplication mentioned in 1.25
deraadt [Sun, 11 Aug 2024 05:28:02 +0000 (05:28 +0000)]
forgot the suspend-time duplication mentioned in 1.25

2 months agoput ACPI_SST_WAKING in gosleep() where kettenis asked for
deraadt [Sun, 11 Aug 2024 05:21:52 +0000 (05:21 +0000)]
put ACPI_SST_WAKING in gosleep() where kettenis asked for

2 months agoadd name member to struct resource
jsg [Sun, 11 Aug 2024 03:27:29 +0000 (03:27 +0000)]
add name member to struct resource
needed for newer inteldrm

2 months agosync
deraadt [Sun, 11 Aug 2024 01:40:49 +0000 (01:40 +0000)]
sync

2 months agounbreak igc on strict alignment archs.
dlg [Sun, 11 Aug 2024 01:02:10 +0000 (01:02 +0000)]
unbreak igc on strict alignment archs.

igc (like other intel nics) only supports a limited range of rx
buffer sizes, one of which is 2k like our standard mbuf clusters.
however they put the ethernet packet at the start of the provided
rx buffer, which means the ip header is misaligned on strict alignment
archs if we use the standard 2k mbuf clusters. to avoid wasting too
much memory using the next biggest cluster (4k) we have mcl2k2
clusters that pretty much exists for intel nics to use.

igc (and probably some other drivers ive touched) was too clever
about using mcl2k2 though, which caused panics when trying to use
jumbo packets. jan@ fixed this by moving back to 2k clusters, but
that broke sparc64 (and probably powerpc64).

this dumbs the mcl2k2 handling down a bit so jumbos still work, but
adds ETHER_ALIGN back so strict alignment archs also work again.

ok bluhm@

2 months agotimeout_add_msec and timeout_add_usec take uint64_t now.
dlg [Sun, 11 Aug 2024 00:50:38 +0000 (00:50 +0000)]
timeout_add_msec and timeout_add_usec take uint64_t now.

2 months agomake the timeout_add_foo wrappers more consistent.
dlg [Sun, 11 Aug 2024 00:49:34 +0000 (00:49 +0000)]
make the timeout_add_foo wrappers more consistent.

take uint64_t as the arg type for timeout_add_msec and timeout_add_usec
like we do for timeout_add_nsec now.

always calculate ticks using uint64_t, and factor out the range checks
on the resulting ticks value so it's done consistently.

ok claudio@

2 months agospelling; ok mvs@
jsg [Sun, 11 Aug 2024 00:19:00 +0000 (00:19 +0000)]
spelling; ok mvs@

2 months agocleanup excessive calls to acpi_indicator at suspend time and resume time
deraadt [Sat, 10 Aug 2024 23:28:17 +0000 (23:28 +0000)]
cleanup excessive calls to acpi_indicator at suspend time and resume time
ok kettenis

2 months agodrm/i915/huc: Allow for very slow HuC loading
jsg [Sat, 10 Aug 2024 23:15:28 +0000 (23:15 +0000)]
drm/i915/huc: Allow for very slow HuC loading

From John Harrison
a797099562267ebb281acd59750f1a8dbba36eef in mainline linux

Avoids HuC auth failing due to timeout on Raptor Lake-S,
reported and fix tested by Laurence Tratt.

2 months agoFix TX descriptors DMA syncs. So far only a single TX desc was synced, which
patrick [Sat, 10 Aug 2024 21:53:06 +0000 (21:53 +0000)]
Fix TX descriptors DMA syncs.  So far only a single TX desc was synced, which
wasn't even one that we filled.  Ensure that we sync all descs that we touch
before we give the whole chain to the hardware.

ok kettenis@

2 months agoSome AMD Ryzen xHCI controllers need a bit more time to transition from D3
kettenis [Sat, 10 Aug 2024 20:20:50 +0000 (20:20 +0000)]
Some AMD Ryzen xHCI controllers need a bit more time to transition from D3
into D0.  Fixes xhci(4) issues after resume.

ok deraadt@

2 months agoregen
jsg [Sat, 10 Aug 2024 11:01:12 +0000 (11:01 +0000)]
regen

2 months agoadd SANDISK/Western Digital NVMe devices
jsg [Sat, 10 Aug 2024 11:00:14 +0000 (11:00 +0000)]
add SANDISK/Western Digital NVMe devices

0x5017 from Jan Schreiber
and some from submitted dmesgs

use a string of just "NVMe" when models share a device id:
0x5009 WDC PC SN530, WDC WDS500G2B0C-00PXH0
0x5014 WD Green SN350, WDC PC SN540
0x5017 WD PC SN740, WD_BLACK SN770

2 months agospelling; ok claudio@
jsg [Sat, 10 Aug 2024 09:18:09 +0000 (09:18 +0000)]
spelling; ok claudio@

2 months agosync
tb [Sat, 10 Aug 2024 06:42:10 +0000 (06:42 +0000)]
sync

2 months agoRemove the empty ui_compat.h
tb [Sat, 10 Aug 2024 06:41:49 +0000 (06:41 +0000)]
Remove the empty ui_compat.h

unused in ports and on codesearch

2 months agorelayd: improve config validation with -n
tb [Sat, 10 Aug 2024 05:47:29 +0000 (05:47 +0000)]
relayd: improve config validation with -n

pf's rule names are limited by 32 characters, so lower the length bounds
for redirect names and tags that relayd accepts as valid config but would
later fail to load into pf. Also display the offending name on error.

from Mark Johnston
ok florian

2 months agouse void when functions have no args
jsg [Sat, 10 Aug 2024 05:32:28 +0000 (05:32 +0000)]
use void when functions have no args
ok deraadt@

2 months agoreduce diff to linux in ggtt_probe_common()
jsg [Sat, 10 Aug 2024 04:59:17 +0000 (04:59 +0000)]
reduce diff to linux in ggtt_probe_common()

2 months agoAdd 2024 root zone trust-anchor, it is expected to be used in 2026.
florian [Fri, 9 Aug 2024 19:43:26 +0000 (19:43 +0000)]
Add 2024 root zone trust-anchor, it is expected to be used in 2026.

The trust-anchor was copied from the upcoming unbound(8) release and
verified against https://www.iana.org/reports/2024/root-ksk-2024.pdf

While here switch the 2017 trust-anchor from DNSKEY to DS to use the
same record type as for the 2024 trust-anchor. They are functionally
equivalent. It was verified against
https://www.iana.org/reports/2017/root-ksk-2017.pdf
As well as with run-time testing, i.e. unwind would still perform
DNSSEC validation.

checked pdfs & OK phessler

2 months ago7.7 packages key
naddy [Fri, 9 Aug 2024 14:57:06 +0000 (14:57 +0000)]
7.7 packages key

2 months agoRemove the ibuf_size(pdu) % sizeof(uint32_t) == 0 since it is already
claudio [Fri, 9 Aug 2024 14:00:48 +0000 (14:00 +0000)]
Remove the ibuf_size(pdu) % sizeof(uint32_t) == 0 since it is already
done in rtr_parse_header(). No need to do it twice.

2 months agoAdjust RTR ASPA pdu parser to draft-ietf-sidrops-8210bis-14 which finally
claudio [Fri, 9 Aug 2024 13:52:09 +0000 (13:52 +0000)]
Adjust RTR ASPA pdu parser to draft-ietf-sidrops-8210bis-14 which finally
adjusted the pdu to follow the other ASPA drafts.
OK tb@

2 months agoenable GuC authentication of HuC
jsg [Fri, 9 Aug 2024 11:04:07 +0000 (11:04 +0000)]
enable GuC authentication of HuC

The HEVC/H.265 micro Controller (HuC) requires authentication via
the Graphics micro Controller (GuC) on pre DG2/MTL hardware.

HuC is required for Low Power Encoding with the
Intel Media Driver for VAAPI.

Using GuC for command submission caused memory corruption on DG2
and inconsistent errors on boot with Alder Lake, so GuC was
previously disabled entirely in a local change.

initial diff from and tested by rsadowski@ (on Alder Lake)

2 months agoRegenerate expected files since gcc4 switched to std=gnu9x some time ago.
claudio [Fri, 9 Aug 2024 08:31:26 +0000 (08:31 +0000)]
Regenerate expected files since gcc4 switched to std=gnu9x some time ago.
OK deraadt@ millert@

2 months agoAdd string.h include and typecast data to reduce warnings
claudio [Fri, 9 Aug 2024 08:30:13 +0000 (08:30 +0000)]
Add string.h include and typecast data to reduce warnings
OK deraadt@ millert@

2 months agoansi functions and prototypes
deraadt [Fri, 9 Aug 2024 05:16:13 +0000 (05:16 +0000)]
ansi functions and prototypes
ok denis

2 months agoAdd OrangePi Zero2 (Allwinner H616). prompted by & ok jsg@
dtucker [Fri, 9 Aug 2024 04:40:09 +0000 (04:40 +0000)]
Add OrangePi Zero2 (Allwinner H616).  prompted by & ok jsg@

2 months agoregen
jsg [Fri, 9 Aug 2024 01:52:01 +0000 (01:52 +0000)]
regen

2 months agoadd Ryzen 9000 "Granite Ridge" id
jsg [Fri, 9 Aug 2024 01:50:16 +0000 (01:50 +0000)]
add Ryzen 9000 "Granite Ridge" id

found in AMD Software: Adrenalin Edition 24.7.1
GC 10.3.6, DCN 3.1.5 same as Ryzen 7000 "Raphael" and
Ryzen 7045 "Dragon Range"

2 months agoct.h: move two asterisks to the proper place
tb [Thu, 8 Aug 2024 23:50:29 +0000 (23:50 +0000)]
ct.h: move two asterisks to the proper place

2 months agocheck_complete: accept #error
tb [Thu, 8 Aug 2024 23:44:43 +0000 (23:44 +0000)]
check_complete: accept #error

2 months agocheck_complete: OBJ_bsearch_() and OBJ_bsearch_ex_() are gone
tb [Thu, 8 Aug 2024 23:43:56 +0000 (23:43 +0000)]
check_complete: OBJ_bsearch_() and OBJ_bsearch_ex_() are gone

2 months agoinstead of including a literal NUL in a string, use "x$(printf \\000)x"
tb [Thu, 8 Aug 2024 19:18:44 +0000 (19:18 +0000)]
instead of including a literal NUL in a string, use "x$(printf \\000)x"

2 months agoFix gasio access size.
kettenis [Thu, 8 Aug 2024 18:46:13 +0000 (18:46 +0000)]
Fix gasio access size.

2 months agoStart wire_count for EPT pde pages at 1.
dv [Thu, 8 Aug 2024 15:57:22 +0000 (15:57 +0000)]
Start wire_count for EPT pde pages at 1.

Corrects an off-by-one error that results in EPT pte's not being
removed properly.

ok mlarkin@

2 months agoIn sysctl KERN_FILE_BYPID stop traversal after pid has been found.
bluhm [Thu, 8 Aug 2024 15:02:36 +0000 (15:02 +0000)]
In sysctl KERN_FILE_BYPID stop traversal after pid has been found.

When searching for a specific process, there is no need to traverse
the list of all processes to the end.  Break after pid has been
found and the file structure has been filled.  Also check for arg
>= 0 as this is consistent with the arg < -1 check before.  This
makes no functional difference as process 0 has PS_SYSTEM set and
is skipped anyway.

OK millert@ mvs@

2 months agoigc(4): Use same size for DMA mapping and allocation for rx bufs
jan [Thu, 8 Aug 2024 14:58:49 +0000 (14:58 +0000)]
igc(4): Use same size for DMA mapping and allocation for rx bufs

Also remove the ETHER_ALIGN which leads to corruped mbufs.

ok bluhm@

2 months agoPrevent spurious "/bsd.upgrade is not u+x" message when the file is missing.
miod [Thu, 8 Aug 2024 13:59:11 +0000 (13:59 +0000)]
Prevent spurious "/bsd.upgrade is not u+x" message when the file is missing.

ok kn@

2 months agoMake user ci_flags is declared volatile.
miod [Thu, 8 Aug 2024 13:56:00 +0000 (13:56 +0000)]
Make user ci_flags is declared volatile.

2 months agoUnlock KERN_MSGBUFSIZE and KERN_CONSBUFSIZE.
mvs [Thu, 8 Aug 2024 10:25:00 +0000 (10:25 +0000)]
Unlock KERN_MSGBUFSIZE and KERN_CONSBUFSIZE.

`msgbufp' and `consbufp' are immutable, such as `msg_magic' and
`msg_bufs'. initmsgbuf() and initconsbuf() which initialize this buffers
are called during kernel bootstrap, when concurrent sysctl(2) is
impossible, so they don't need to be reordered or use barriers.

ok bluhm

2 months agoui_util.c needs stdio.h and ui.h, but not ui_compat.h and ui_local.h
tb [Thu, 8 Aug 2024 09:56:51 +0000 (09:56 +0000)]
ui_util.c needs stdio.h and ui.h, but not ui_compat.h and ui_local.h

2 months agoUse timingsafe_memcmp() when comparing the authenticators. from iij.
yasuoka [Thu, 8 Aug 2024 09:16:37 +0000 (09:16 +0000)]
Use timingsafe_memcmp() when comparing the authenticators.  from iij.

2 months agoPrint suspend-to-idle debug info in a more concise matter.
kettenis [Thu, 8 Aug 2024 07:02:38 +0000 (07:02 +0000)]
Print suspend-to-idle debug info in a more concise matter.

ok mlarkin@, deraadt@

2 months agoMake intelmpc(4) print information about the residency counters advertised
kettenis [Thu, 8 Aug 2024 07:01:22 +0000 (07:01 +0000)]
Make intelmpc(4) print information about the residency counters advertised
in the LPIT table.

ok mlarkin@, deraadt@

2 months agonew dell DW5821e variant is another umb(4); from Bryan Vyhmeister
deraadt [Thu, 8 Aug 2024 05:10:00 +0000 (05:10 +0000)]
new dell DW5821e variant is another umb(4); from Bryan Vyhmeister

2 months agosync
deraadt [Thu, 8 Aug 2024 05:09:33 +0000 (05:09 +0000)]
sync

2 months agonew dell DW5821e variant is another umb(4); from Bryan Vyhmeister
deraadt [Thu, 8 Aug 2024 05:09:09 +0000 (05:09 +0000)]
new dell DW5821e variant is another umb(4); from Bryan Vyhmeister

2 months agoFix a typo in log message.
yasuoka [Thu, 8 Aug 2024 03:58:53 +0000 (03:58 +0000)]
Fix a typo in log message.

2 months agohmac test: fix build with gcc
tb [Thu, 8 Aug 2024 03:46:50 +0000 (03:46 +0000)]
hmac test: fix build with gcc

The bounded attribute leads to failing regress compilation with gcc due
to a test passing a negative length to exercise a chck.

noticed and fixed suggested by claudio

2 months agosync
deraadt [Wed, 7 Aug 2024 23:03:49 +0000 (23:03 +0000)]
sync

2 months agoold keys can go away
deraadt [Wed, 7 Aug 2024 23:03:24 +0000 (23:03 +0000)]
old keys can go away

2 months agoadd 7.7 base key
deraadt [Wed, 7 Aug 2024 23:02:48 +0000 (23:02 +0000)]
add 7.7 base key

2 months agoUpdate sparc64 ok files to match with reality.
claudio [Wed, 7 Aug 2024 18:26:44 +0000 (18:26 +0000)]
Update sparc64 ok files to match with reality.
OK deraadt@

2 months agoRework fork-exit regress to work with any pagesize not only 4k.
claudio [Wed, 7 Aug 2024 18:25:39 +0000 (18:25 +0000)]
Rework fork-exit regress to work with any pagesize not only 4k.
Also mmap PROT_READ|PROT_WRITE instead of write only.
Add a bit more extra space for the stack allocations.
With all of this this test no longer fails on sparc64
OK deraadt@ bluhm@

2 months agoAttach ksmn(4) on 19h/7x devices
brynet [Wed, 7 Aug 2024 17:39:00 +0000 (17:39 +0000)]
Attach ksmn(4) on 19h/7x devices

Tested on:
cpu0: AMD Ryzen 7 PRO 8700GE w/ Radeon 780M Graphics, 3650.01 MHz, 19-75-02, patch 0a705205

Thanks to Jan (@js@x0r.be on mastodon) for testing.

"Sure" deraadt@

2 months agosync
deraadt [Wed, 7 Aug 2024 16:01:18 +0000 (16:01 +0000)]
sync

2 months agocrank to 7.6-beta, release date is vague
deraadt [Wed, 7 Aug 2024 15:59:24 +0000 (15:59 +0000)]
crank to 7.6-beta, release date is vague

2 months agoadjust check_complete after recent-ish API and docs changes
tb [Wed, 7 Aug 2024 10:26:43 +0000 (10:26 +0000)]
adjust check_complete after recent-ish API and docs changes

2 months agoFix a typo
yasuoka [Wed, 7 Aug 2024 07:15:18 +0000 (07:15 +0000)]
Fix a typo

2 months agoregen
jsg [Wed, 7 Aug 2024 06:49:54 +0000 (06:49 +0000)]
regen

2 months agoadd devices seen on Lenovo ThinkCentre M75q Gen 5 with
jsg [Wed, 7 Aug 2024 06:48:55 +0000 (06:48 +0000)]
add devices seen on Lenovo ThinkCentre M75q Gen 5 with
Ryzen 5 PRO 8500GE 19-78-00

2 months agoasprintf() and vasprintf() are in POSIX-2024. Update #include
guenther [Wed, 7 Aug 2024 05:15:28 +0000 (05:15 +0000)]
asprintf() and vasprintf() are in POSIX-2024.  Update #include
visibility and manpages and add restrict qualifiers in all the
specified places to the *printf family.

ok millert@

2 months agowcslcpy() and wcslcat() are in POSIX-2024. Update #include visibility
guenther [Wed, 7 Aug 2024 04:59:45 +0000 (04:59 +0000)]
wcslcpy() and wcslcat() are in POSIX-2024.  Update #include visibility
and manpages and add restrict qualifiers.

ok millert@

2 months agoUnlock `udpctl_vars'.
mvs [Tue, 6 Aug 2024 20:15:53 +0000 (20:15 +0000)]
Unlock `udpctl_vars'.

`udp_sendspace' and `udp_recvspace' are integers which read-only
accessed in udp_attach(). `udpcksum' read-only accessed in udp_output().
No netlock required to modify them through sysctl(2).

ok bluhm

2 months agoFor consistency with other similar sysctl(2) variables use
mvs [Tue, 6 Aug 2024 20:14:56 +0000 (20:14 +0000)]
For consistency with other similar sysctl(2) variables use
atomic_load_int(9) while loading `somaxconn' and `sominconn'.

ok bluhm

2 months agoUse atomic_load_int(9) for unlocked read access to net.unix.*space
mvs [Tue, 6 Aug 2024 20:13:58 +0000 (20:13 +0000)]
Use atomic_load_int(9) for unlocked read access to net.unix.*space
sysctl(2) variables.

ok bluhm

2 months agoRevert the knote_processexit() bits of the diff. It introduced a small
claudio [Tue, 6 Aug 2024 18:41:20 +0000 (18:41 +0000)]
Revert the knote_processexit() bits of the diff. It introduced a small
window where a knote is available but PS_ZOMBIE is not yet set (causing
waitpid() to not return that pid).
Requested by jca@ and deraadt@

2 months agoSome laptops will generate an EC event shortly after we attempt to enter
kettenis [Tue, 6 Aug 2024 17:38:56 +0000 (17:38 +0000)]
Some laptops will generate an EC event shortly after we attempt to enter
a low power S0 idle state.  Since we register the EC GPE as a wakeup GPE
this means we'll wake up immediately.  Unfortunately we have to register
that GPE as a wakeup GPE otherwise many laptops won't wake up when the
user opens the lid (and some laptops won't wake up at all).  So add some
code to handle EC events while suspended and introduce the concept of
wakeup AML notify handlers.  Register the acpibtn(4) notify handlers as
wakeup notify handlers such that we wake up.  We'll go back to sleep
immediately if we wake up for any other EC event.

ok mlarkin@, deraadt@

2 months agoSome Intel xhci(4) controllers don't fully power down unless they've seen
kettenis [Tue, 6 Aug 2024 17:30:04 +0000 (17:30 +0000)]
Some Intel xhci(4) controllers don't fully power down unless they've seen
a "save state" command.  So use that command when we suspend (and don't
reset the controller at that point such that it doesn't forget about it).
Note that on resume we don't restore the state.  Instead we just reset
the controller and bring it up from scratch.  There isn't much state to
save anyway since we detach all USB devices when we suspend.

ok mlarkin@, deraadt@

2 months agoUnlock sysctl net.inet.ip.directed-broadcast.
bluhm [Tue, 6 Aug 2024 16:56:09 +0000 (16:56 +0000)]
Unlock sysctl net.inet.ip.directed-broadcast.

ip_directedbcast is read once in either ip_input() or pf_test()
during packet processing.  So writing the variable does not need
net lock.

OK mvs@

2 months agoOn the RK3588 eMMC controller it appears that after a failed command a
patrick [Tue, 6 Aug 2024 15:03:36 +0000 (15:03 +0000)]
On the RK3588 eMMC controller it appears that after a failed command a
completion signal shows up some time after the error signal.  This can
lead to the case that when the next command is being executed, the old
completion signal is still recorded and the driver may think the command
already executed.  Resetting the status before executing a new command
makes sense, albeit it's technically still possible that the controller
issues another completion signal.  It shouldn't happen because a reset
was issued and we're also waiting for the command and data inhibit bits
to be cleared, but who knows.  This makes the eMMC come up reliably.

ok kettenis@

2 months agoUnlock KERN_CLOCKRATE.
mvs [Tue, 6 Aug 2024 12:36:54 +0000 (12:36 +0000)]
Unlock KERN_CLOCKRATE.

Read-only access to local `clkinfo' filled with immutable data.

ok bluhm

2 months agoThe devicetree spec says in section 2.4:
kettenis [Tue, 6 Aug 2024 09:07:15 +0000 (09:07 +0000)]
The devicetree spec says in section 2.4:

If an interrupt-generating device does not have an interrupt-parent
property, its interrupt parent is assumed to be its devicetree
parent.

Implement this aspect of the spec in the same way as Linux does by not
just looking at the immediate parent but keep on walking up the tree
until we hit a node with an "interrupt-controller" property or a node
that has an "interrupt-parent" property.

similar diff as committed for arm64 a couple of days ago
ok jca@

2 months agoStop using KERNEL_LOCK to protect the per process kqueue list
claudio [Tue, 6 Aug 2024 08:44:54 +0000 (08:44 +0000)]
Stop using KERNEL_LOCK to protect the per process kqueue list

Instead of the KERNEL_LOCK use the ps_mtx for most operations.
If the ps_klist is modified an additional global rwlock (kqueue_ps_list_lock)
is required. This includes the knotes with NOTE_FORK and NOTE_EXIT since
in either cases a ps_klist is changed. In the NOTE_FORK | NOTE_TRACK case
the call to kqueue_register() can sleep this is why a global rwlock is used.

Adjust the reaper() to call knote_processexit() without KERNEL_LOCK.
Double lock idea from visa@
OK mvs@

2 months agoDefine _LOCORE before including machine/ctlreg.h in ASM code.
claudio [Tue, 6 Aug 2024 05:39:48 +0000 (05:39 +0000)]
Define _LOCORE before including machine/ctlreg.h in ASM code.
OK miod@ kettenis@

2 months agoReplace sys/time.h with proper includes for using localtime
gnezdo [Tue, 6 Aug 2024 04:59:18 +0000 (04:59 +0000)]
Replace sys/time.h with proper includes for using localtime

Sure deraadt@

2 months agorestrict the maximum wait time you can set via BIOCSWTIMEOUT to 5 minutes.
dlg [Mon, 5 Aug 2024 23:56:10 +0000 (23:56 +0000)]
restrict the maximum wait time you can set via BIOCSWTIMEOUT to 5 minutes.

this is avoids passing excessively large values to timeout_add_nsec.

Reported-by: syzbot+f650785d4f2b3fe28284@syzkaller.appspotmail.com
2 months agotimeout_add_nsec takes a uint64_t now.
dlg [Mon, 5 Aug 2024 23:52:03 +0000 (23:52 +0000)]
timeout_add_nsec takes a uint64_t now.

2 months agochange the nsec argument to timeout_add_nsec from int to uint64_t
dlg [Mon, 5 Aug 2024 23:51:11 +0000 (23:51 +0000)]
change the nsec argument to timeout_add_nsec from int to uint64_t

you can only fit a couple of nanonseconds into an int, which limited
the usefulness of the api. worse, if a large nsec value was passed
in it could be cast to a negative int value which tripped over a
KASSERT at the top of timeout_add that ends up being called. avoid
this footgun by working in the bigger type and doing the same range
checks/fixes for other timeout_add wrappers.

ok claudio@ mvs@

2 months agoUnlock KERN_BOOTTIME.
mvs [Mon, 5 Aug 2024 18:47:29 +0000 (18:47 +0000)]
Unlock KERN_BOOTTIME.

microboottime() and following binboottime() are mp-safe and `mb' is
local data.

ok bluhm

2 months agoAdjust for arm64_intr_get_parent() changes.
kettenis [Mon, 5 Aug 2024 18:39:34 +0000 (18:39 +0000)]
Adjust for arm64_intr_get_parent() changes.

ok patrick@

2 months agoFix reporting if critical battery state.
kettenis [Mon, 5 Aug 2024 18:37:29 +0000 (18:37 +0000)]
Fix reporting if critical battery state.

ok jca@, mlarkin@

2 months agoAdd battery sensors.
kettenis [Mon, 5 Aug 2024 18:36:28 +0000 (18:36 +0000)]
Add battery sensors.

ok phessler@

2 months agoFix bridging IPv6 fragments with pf reassembly.
bluhm [Mon, 5 Aug 2024 17:47:29 +0000 (17:47 +0000)]
Fix bridging IPv6 fragments with pf reassembly.

Sending IPv6 fragments over a bridge with pf did not work.  During
input pf reassembles the packet, and at bridge output it should be
refragmented.  This is only done for PF_FWD direction, but bridge(4)
and veb(4) called pf_test() with PF_OUT argument.

OK sashan@

2 months agoUnlock most of `kern_vars' variables.
mvs [Mon, 5 Aug 2024 15:43:58 +0000 (15:43 +0000)]
Unlock most of `kern_vars' variables.

Add corresponding cases to the kern_sysctl() switch and unlock read-only
variables from `kern_vars'. Unlock KERN_SOMAXCONN and KERN_SOMINCONN
which are atomically read-only accessed only from solisten().

ok kettenis

2 months agoThe devicetree spec says in section 2.4:
kettenis [Mon, 5 Aug 2024 13:55:34 +0000 (13:55 +0000)]
The devicetree spec says in section 2.4:

If an interrupt-generating device does not have an interrupt-parent
property, its interrupt parent is assumed to be its devicetree
parent.

Implement this aspect of the spec in the same way as Linux does by not
just looking at the immediate parent but keep on walking up the tree
until we hit a node with an "interrupt-controller" property or a node
that has an "interrupt-parent" property.

same diff as committed for arm64 yesterday
ok patrick@

2 months agoTake `sysctl_lock' before kernel lock.
mvs [Mon, 5 Aug 2024 13:46:16 +0000 (13:46 +0000)]
Take `sysctl_lock' before kernel lock.

ok bluhm