[AMDGPU] Refactor setreg handling in the VGPR MSB lowering
It can skip inserting S_SET_VGPR_MSB if we set the mode via
piggybacking. We are now relying on the HW bug for correct
behavior. If/when the bug is fixed lowering will be incorrect.
SETREG is not a piggybacking target anymore. Instead piggybacking is
disabled if we have seen a SETREG since the last mode change.
[LifetimeSafety] Add placement new support (#194030)
Allows flow from placement new closely resembling standard library form.
Comes as part of the completion of #164963.
ui: change generic error trap to exclude upgradestatus messages and prevent multiple instances being created, which prevents the user being spammed faster than he/she can close dialogs.
(cherry picked from commit 6f48d0fa4fa0571bd55479271b7dec716c85d53c)
Services: Unbound DNS: Overrides - One of the major disadvantages of asking for domains and hostnames seperately is that standard fqdn validations don't apply, which is the case here. Adding a dot at the end of a fqdn is valid, having an empty element isn't. We fix the latter by preventing a hostname ending with a dot here. closes https://github.com/opnsense/core/issues/10170
(cherry picked from commit 16ddd5a1c1f4751171de10b036f0f8e04ac3d682)
Firewall: Use save method from ApiMutableModelControllerBase for log command, move rule command and savepoint action (#10201)
* Firewall: Use save method from ApiMutableModelControllerBase for log command, move rule command and savepoint action
* Guard all Savepoint Actions additionally as they can interact directly with the config save inside the model
* Add comment to mark the savepoint feature as currently unused by GUI
* We can enable validation on save since only changed fields are evaluated and log or sequence are not chained into other dependant validations
ifnet: if_detach(): Fix races with vmove operations
The rationality is that the driver private data holds a strong reference
to the interface, and the detach operation shall never fail. Given the
vmove operation, if_vmove_loan(), if_vmove_reclaim() or vnet_if_return()
is not atomic and spans multiple steps, acquire ifnet_detach_sxlock only
for if_detach_internal() and if_vmove() is not sufficient. It is possible
that the thread running if_detach() sees stale vnet, or the vmoving is
in progress, then if_unlink_ifnet() will fail.
Fix that by extending coverage of ifnet_detach_sxlock a bit to also
cover if_unlink_ifnet(), so that the entire detach and vmove operation
is serialized.
Given it is an error when the if_unlink_ifnet() fails, and if_detach()
is a public KPI, prefer panic() over assertion on failure, to indicate
explicitly that bad thing happens. That shall also prevent potential
corrupted status of the interface, which is a bit hard to diagnose.
[6 lines not shown]
tests/net/if_clone_test: Add a test for races between if_detach() and if_vmove_reclaim()
Ideally we shall have tests for all possible races. It is races between
if_detach(), if_vmove_loan(), if_vmove_reclaim() and vnet_if_return().
Well that requires too many tests and it appears to be less valuable to
have them all. So focus on potential in future regressions related to
recent fixes [1] and [2] only.
[1] ee9456ce3753 ifnet: Fix races in if_vmove_reclaim()
[2] ba7f47d47dc1 ifnet: if_detach(): Fix races with vmove operations
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D56606
(cherry picked from commit f4be16983dea4904f85ac20e921ad2a8c18a0f79)
if_clone: Make ifnet_detach_sxlock opaque to consumers
The change e133271fc1b5e introduced ifnet_detach_sxlock, and change
6d2a10d96fb5 widened its coverage, but there are still consumers,
net80211 and tuntap e.g., want it. Instead of sprinkling it everywhere,
make it opaque to consumers.
Out of tree drivers shall also benefit from this change.
Reviewed by: kp
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D56298
(cherry picked from commit e9fc0c538264355bd3fd9120c650078281c2a290)
ifnet: vnet_if_return(): Avoid unnecessary recursive acquisition of ifnet_detach_sxlock
vnet_if_return() will be invocked by vnet_sysuninit() on vnet destructing,
while the lock ifnet_detach_sxlock has been acquired in vnet_destroy()
already.
With this change the order of locking is more clear. There should be no
functional change.
Reviewed by: pouria
Fixes: 868bf82153e8 if: avoid interface destroy race
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D56288
(cherry picked from commit f1fae67afbb13a41d488d0e0ec66b1805925019c)
ifnet: Move SIOCSIFVNET from ifhwioctl() to ifioctl()
SIOCSIFVNET is not a hardware ioctl. Move it to where it belongs.
Where here, rewrite the logic of checking whether we are moving the
interface from and to the same vnet or not, since it is obviously not
stable to access the interface's vnet, given the current thread may
race with other threads those running if_vmove().
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D55880
(cherry picked from commit 38bd7ef62f318f791e232e217855307a9d75efa0)
ifnet: Fix races in if_vmove_reclaim()
The thread running if_vmove_reclaim() may race with other threads those
running if_detach(), if_vmove_loan() or if_vmove_reclaim(). In case the
current thread loses race, two issues arise,
1. It is unstable and unsafe to access ifp->if_vnet,
2. The interface is removed from "active" list, hence if_unlink_ifnet()
can fail.
For the first case, check against source prison's vnet instead, given
the interface is obtained from that vnet.
For the second one, return ENODEV to indicate the interface was on the
list but the current thread loses race, to distinguish from ENXIO, which
means the interface or child prison is not found. This is the same with
if_vmove_loan().
Reviewed by: kp, pouria
[5 lines not shown]
ifnet: Remove unreachable code
The ioctls SIOCSIFVNET and SIOCSIFRVNET are for userland only. For
SIOCSIFVNET, if_vmove_loan(), the interface is obtained from current
VNET. For SIOCSIFRVNET, if_vmove_reclaim(), a valid child prison is
held before getting the interface. In both cases the VNET of the
obtained interfaces is stable, so there's no need to check it.
No functional change intended.
Reviewed by: glebius, jamie (for #jails)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D55828
(cherry picked from commit e0731059af912a27d0f842959218946b1daaa7d1)
ifnet: Add some sanity checks
To be more robust since the checking is now performed where the
interface is referenced.
While here, remove a redundant check from if_vmove_loan().
Reviewed by: kp, glebius, pouria
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D55875
(cherry picked from commit 00d96da231d007673a1672452748d8ea4f6788ae)
system: protect popen() with exec_safe()
Shell code execution safety has been widely covered in previous releases
but two popen() calls have eluded that previous scope. The code is a bit
overloaded for historic reasons and trusts the config.xml content, but
it can be manipulated with admin-level access rights through either config
import or XMLRPC sync to contain shell injection which lands on the system
unquoted. Fix this by splitting up composite variable $user_op and quoting
every dynamic argument to make sure there is no vector left to inject a
command.
PR: GHSA-xxp9-93cr-x54p
(cherry picked from commit 3b6f357e26a38079313b926b5a5d2b7171717d54)
[LoongArch] Add patterns for vector bitwise selection (#193753)
Add instruction selection patterns for VBITSEL_V/XVBITSEL_V and
VBITSELI_B/XVBITSELI_B to match the canonical bitwise select idiom:
`(a & b) | (~a & c)`
This enables the backend to generate dedicated bitwise select
instructions instead of separate AND/ANDN/OR sequences.
Merge commit from fork
Shell code execution safety has been widely covered in previous releases
but two popen() calls have eluded that previous scope. The code is a bit
overloaded for historic reasons and trusts the config.xml content, but
it can be manipulated with admin-level access rights through either config
import or XMLRPC sync to contain shell injection which lands on the system
unquoted. Fix this by splitting up composite variable $user_op and quoting
every dynamic argument to make sure there is no vector left to inject a
command.
PR: GHSA-xxp9-93cr-x54p
py-pydantic-settings: updated to 2.14.0
2.14.0
Fix parsing env vars into Optional Strict types
Fix RecursionError with mutually recursive models in CLI
Fix env_file from model_config ignored in CliApp.run()
Update dependencies
Add Dependabot configuration
Bump samuelcolvin/check-python-version from 4.1 to 5
Bump actions/upload-artifact from 4 to 7
Bump actions/checkout from 4 to 6
Bump astral-sh/setup-uv from 5 to 7
Bump actions/setup-python from 5 to 6
Ignore chardet and group GitHub Actions in Dependabot
Bump actions/download-artifact from 4 to 8 in the github-actions group
Bump the python-packages group with 2 updates
Support reading .env files from FIFOs (e.g. 1Password Environments)
Fix AliasChoices ignored when changing provider priority
[20 lines not shown]
[libc++] Refactor std::print to allow for constant folding of the format part (#185459)
```
---------------------------------------------------------
Benchmark old new
---------------------------------------------------------
std::print("Hello, World!") 43.6 ns 9.88 ns
```