locale: make install Unicode 17.0.0/CLDR 48
Unicode 17.0 adds 4803 characters, for a total of 159,801 characters.
The new additions include 4 new scripts:
- Sidetic
- Tolong Siki
- Beria Erfe
- Tai Yo
https://www.unicode.org/versions/Unicode17.0.0/
linuxkpi: gracefully handle page lookup failure in lkpi_vmf_insert_pfn_prot_locked
Currently lkpi_vmf_insert_pfn_prot_locked will check the page iter to
find a usage of the page. If no page was found, it continues on to
try using PHYS_TO_VM_PAGE() to get a page. Currently it does not check
if a valid page was found before passing it to vm_page_busy_acquire,
which can cause a kernel page fault as vm_page_busy_acquire expects
a valid page pointer.
This can easily be triggered while starting KDE6 in wayland mode, which
many users have been reporting. With this change plasma6 starts properly
in wayland mode.
Sponsored by: NVIDIA
PR: 288565
Reviewed by: markj, kbowling (mentor)
Differential Revision: https://reviews.freebsd.org/D53412
(cherry picked from commit 03b214a35db1ebdc7575cad8d695c65daf2817bf)
linuxkpi: add stub implementation of pm_vt_switch_(un)register
This adds empty implementations of pm_vt_switch_(un)register which
are used by nvidia-drm. We do not need to specify anything here as
a VT switch always happens on suspend/resume.
Sponsored by: NVIDIA
Reviewed by: kbowling (mentor), emaste
Differential Revision: https://reviews.freebsd.org/D53400
(cherry picked from commit 75aa13c64aba71f6f26d05e8fcf96e3862d44cde)
lltable: use own lock
Add struct mtx to struct lltable and stop using IF_AFDATA_LOCK, that
was created for a completely different purpose. No functional change
intended.
Reviewed by: zlei, melifaro
Differential Revision: https://reviews.freebsd.org/D54086
linux: store Linux Ethernet interface number in struct ifnet
The old approach where we go through the list of interfaces and count them
has bugs. One obvious bug with this dynamic translation is that once an
Ethernet interface in the middle of the list goes away, all interfaces
following it would change their Linux names.
A bigger problem is the ifnet arrival and departure times. For example
linsysfs has event handler for ifnet_arrival_event, and of course it wants
to resolve the name. This accidentially works, due to a bug in
if_attach() where we call if_link_ifnet() before invoking all the event
handlers. Once the bug is fixed linsysfs won't be able to resolve the old
way. The other side is ifnet_departure_event, where there is no bug, the
eventhandlers are called after the if_unlink_ifnet(). This means old
translation won't work for departure event handlers. One example is
netlink. This change gives the Netlink a chance to emit a proper Linux
interface departure message.
However, there is another problem in Netlink, that the ifnet pointer is
[7 lines not shown]
linux: separate all ifnet(9) related code into linux_ifnet.c
Remove linux_use_real_ifname(). It is no longer used outside of the
file since 3ab3c9c29cf0. There is no functional change.
Reviewed by: melifaro, dchagin
Differential Revision: https://reviews.freebsd.org/D54076
proc0_post: Clear relevant thread stats directly
rufetch() has several other effects besides clearing these per-thread
stats most of which are explicitly discarded by the subsequent calls
to ruxreset(). Just clear the relevant stats directly instead.
Reviewed by: olce, kib, markj
Differential Revision: https://reviews.freebsd.org/D54050
ruxreset: Add an inline function to reset all the stats in rusage_ext
Use it in proc0_post to reset per-process CPU usage.
Suggested by: olce
Reviewed by: olce, kib
Differential Revision: https://reviews.freebsd.org/D54049
thread0: Clear td_rux stats in proc0_post
proc0_post aims to reset the CPU usage accounting for all threads and
processes in the system to zero once the time of day is verified.
However, not all of the per-thread stats were not being cleared,
resulting in over-reported time for thread0 post-boot.
Reviewed by: olce, kib, markj
Fixes: bed4c5241663 ("Implement RUSAGE_THREAD. Add td_rux...")
Differential Revision: https://reviews.freebsd.org/D54040
ipfilter: Restrict ipfilter within a jail
Add a sysctl/tunable (net.inet.ipf.jail_allowed) to control whether a
jail can manage its own ipfilter rules, pools, and settings. A jail's
control over its own ipfilter rules and settings may not be desireable.
The default is jail access to ipfilter is denied.
The host system can stil manage a jail's rules by attaching the rules,
using the on keyword, limiting the rule to the jail's interface. Or
the sysctl/tunable can be enabled to allow a jail control over its own
ipfilter rules and settings.
Implementation note: Rather than store the jail_allowed variable,
referenced by sysctl(9), in a global area, storing the variable in the
ipfilter softc is consistent with ipfilter's use of its softc.
Discussed with: emaste, jrm
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D53623
ipfilter: Disable ipfs(8) by default
At the moment ipfs(8) is a tool that can be easily abused. Though the
concept is sound the implementation needs some work.
ipfs(8) should be considered experimental at the moment.
This commit also makes ipfs support in the kernel optional.
Reviewed by: emaste, glebius
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D53787
mt76: ieee80211_is_first_frag() operates on the seq_ctrl field not on fc.
Pass the correct field to ieee80211_is_first_frag(); otherwise the results
may vary.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit c67fd35e58c6ee1e19877a7fe5998885683abedc)
mt76: add LINUXKPI_PARAM_PREFIX for module_param*
In order to not overwrite sysctl/tunables under compat.linuxkpi
we need to prefix the module_param* names with a per-driver/file
designator to make them (more) uniq. Add the FreeBSD specific
LINUXKPI_PARAM_PREFIX defines for that where missing in mt76.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 853e0440c97a4a1797edd6d653fba4398dc885e8)
mt76: util.h: extend worker name
In mt76_worker_setup() add the "name" argument to the description
for the worker thread. That way we have a chance to keep them apart.
While here, rename a variable and shorten the the (c)/SPDX section
according to new style.
(cherry picked from commit 9492230fd3d1e58696e9fd99cb9680b27bf1d424)
mt76: set appropriate CONFIG options for the module build
Always set CONFIG_ARCH_DMA_ADDR_T_64BIT as it is true for all
architectures we support. Add an option for CONFIG_NET_MEDIATEK_SOC_WED,
which we currently do not yet support.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 87aa494dfca73204516799033821ab1db184933f)
LinuxKPI: mt76: depend on CONFIG_NET_MEDIATEK_SOC_WED
If CONFIG_NET_MEDIATEK_SOC_WED is not set then be silent; if
CONFIG_NET_MEDIATEK_SOC_WED is set we will enable logic or rather te
pr_debug("TODO") calls for now.
Spsonsored by: The FreeBSD Foundation
(cherry picked from commit 51c73fc5f5dd95c6a0e3d232091a732a14c7ecc9)
LinuxKPI: 802.11: move ieee80211_offload_flags
Move the enum and leave a comment on the struct member for the vif
about the type.
No functional changes.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit b10ff7ed37a9b891bec7e1093e44fa7abb2054b4)
LinuxKPI: 802.11: fill in more skeleton functions
Some of these are used by mt76 and while I was here and it only was
a handfull I figured I should just clean this all up.
There is one problem in that between 802.11az and 802.11-2024 action
frame formats have changed; I got compile errors from iwlwifi(4) given
I updated them to -2024 so we remain on older versions for the moment.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit af22833348c6c7ffed0186651437b5f50be1550b)