In the pledge_namei() callback, stop looking for the libc special files
when the open(2) system call was used, and only do this for __pledge_open(2)
which libc will use when it intends to access those files.
This breaks compatibility in a pretty major way, but that's the price being
paid to undo this historical shortcut I made to satisfy libc's internal
requirements and make pledge(2) a possibility.
All the other parts are already in the tree. There may be a few dangling
issues in ports or base which we'll find over time.
Add support for BCM575xx devices, variously known as Thor or P5.
There are a few significant differences to earlier devices.
The nic now requires some host memory to use as backing store for its queues,
and for now we're overallocating to some extent. It's not a noticeable amount
of memory for a system with one of these nics in it, so this isn't a huge
concern.
P5 devices have notification queues to act as an indirection between tx/rx
completion rings and msi-x vectors. We set up one per queue and statically
map them to msi-x vectors in turn according to the intrmap.
The doorbell structures are now 64 bits, and all written to through the same
memory address.
Ring groups are not used, so the functions to allocate and free ring groups
don't do anything for P5 devices; instead, rings are directly associated
with each other on creation, and aggregation rings are identified by a
different ring type.
[3 lines not shown]
Draw message as one format, allowing prompts and messages to occupy only
a portion of the status bar, overlaying the normal status content rather
than replacing the entire line. A new message-format option now controls
the entire message (like status-format). From Conor Taylor in GitHub
issue 4861.
Implement delayed hibernation. If the machdep.hibernatedelay sysctl is
set to a value that isn't zero, this specifies a number of seconds after
which the machine will wake up from suspend and hibernate itself.
ok florian@, mlarkin@
Increase argv buffer from _POSIX2_LINE_MAX to _POSIX_ARG_MAX.
This better handles matching commands with long arguments. Note
that it is still possible for a command to have command line arguments
larger than _POSIX_ARG_MAX, but this should be enough in most cases.
From Mikolaj Kucharski
On OpenBSD, recv*msg(2) can return EPERM if the ancillary data from
the other side contains a file descriptor type we don't like. We
have some protection against ridiculous types, and when running in pledge
it gets even more strict.
ok kettenis
Add support Intel AX211 BZ MACs paired WiFi 6e RFs to iwx(4).
These devices are found in recent laptops using Intel AX211 WiFi 6e.
Only WiFi 6e, not WiFi 7, which will probably need a separate driver
as the Linux kernel does (iwlmld).
Firmware for BZ devices is available in fw_update.
There is still an unsolved problem with Tx performance. As soon as Tx
aggregation is used the device stalls and stops sending and receiving.
Tx performance is stable with block ack disabled, i.e. in mode 11a/b/g.
Help with figuring out the root cause of this would be appreciated.
I would have preferred to commit a fully working version but have
already spent quite a lot of time trying to find this last bug. It is
time to put this in anyway and hope the issue will be fixed soon.
Thanks to all involved for the support with review and testing of the
diffs which led up to this, to Johannes Berg for help with solving
various fatal firmware errors, to denis@'s company for making it
[2 lines not shown]
handle missed beacons notification sent by newer iwx(4) firmware
Newer firmware uses a new missed-beacons notification code in the
MAC_CONF group, but otherwise behaves as previously.