Push `pageqlock' dances inside uvm_page{de,}activate() & uvm_pagewire().
Tested during multiple bulks on amd64, i386, arm64 and sparc64 by jca@,
phessler@ and sthen@.
use an smr crit section instead of real iface refs in the uRPF check
the uRPF tries to use interface indexes, but if the index doesnt
match it'll resolve to a real interface and do an IFT_CARP and
carpdev index check.
it's easy to do this lookup from an smr crit section and avoid the
refcnt ops.
use an smr crit section instead of real interface refs in pf_match_rcvif
this is only used during ruleset evaluation, so it is less hot than
the carpdev resolution done in pf_test, but it's an easy change to
avoid unecessary atomic ops.
use an smr crit section to get the parent of carp interfaces.
pf maps packets "received" on carp interfaces back to the actual
interface it was received on and applies policy to that parent.
eg, if you have carp0 on top of em0, packets destined to the carp0
mac address, the network stack will think that the packets were
received by carp0. pf maps carp0 back to em0 and applies policy on
em0 though.
previously pf used if_get/if_put to do this lookup of the carp
parent, which is a couple of atomic ops on what can be a contended
cacheline for every packet destined for a carp interface. now the
lookup is done in an SMR critical section, against what will
hopefully be a shared cacheline.
replace if_get with if_get_smr in the vlan transmit path.
this mitigates against hammering the parent interface refcnt when
transmitting packets.
this means we call if_enqueue against the parent interface from an
smr critical section rather than calling it while holding a "real"
ref, but aggr has been calling if_enqueue from an smr critical
section for years without issue.
add if_get_smr()
if_get_smr() is like if_get() in that you give it an interface index
and it gives you an ifnet pointer (or NULL), except it doesnt bump
the reference count on the interface. to compensate, you can only
use it inside an SMR critical section.
the good news is that the ifidxmap map and ifnet lookups are already
done using SMR, so this is an extremely trivial change.
the benefit of this is that you can avoid the atomic operations on
a shared variable (the ifnet refcnt) when using an interface in an
smr critical section.
Do not crash when calling freeaddrinfo(NULL)
Supported by Linux since at least 1997, and FreeBSD since 2017. While
not defined, there's no real good reason to crash when we could just
cope. Indeed, software out there relies on the Linux behavior.
Point out in the manpage that the behavior of getaddrinfo(NULL) isn't
defined and thus isn't portable.
Edge case spotted recently by kn@ in OpenVPN.
ok millert@ djm@ deraadt@ kn@
Setting working directory after fork means there is a race with
pane_current_path (especially on platforms with systemd which have to
take time to do some additional faffing around). To avoid this, change
it before fork and back in the parent afterwards. GitHub issue 4719.
This is a preperatory patch to move things around to be ready for
supporting the low-level FUSE API:
It introduces the following new files.
- /usr/include/fuse/fuse_common.h
- /usr/include/fuse/fuse_lowlevel.h
- /usr/src/lib/libfuse/fuse_chan.c
Additionally, it relocates all libfuse header files to the
/usr/include/fuse directory so that it now contains.
- /usr/include/fuse/fuse.h
- /usr/include/fuse/fuse_opt.h
- /usr/include/fuse/fuse_common.h
- /usr/include/fuse/fuse_lowlevel.h
Relevant definitions have been moved into their appropriate
files, and I took the opportunity for some minor cleanup. The
[4 lines not shown]
add a GssDelegateCreds option for the server, controlling whether it
accepts delgated credentials offered by the client. This option
mirrors GssDelegateCreds in ssh_config.
From Dmitry Belyavskiy via GHPR614; ok dtucker@
There is a warning next to the authorized_keys command="" flag that
forcing a command doesn't automatically disable forwarding. Add one
next to the sshd_config(5) ForceCommand directive too.
feedback deraadt@
drm/i915/dp: Initialize the source OUI write timestamp always
From Imre Deak
e656ba6ca534743960f66f70adac9246243fd9e9 in linux-6.12.y/6.12.61
5861258c4e6a829a10200b41ba3fb4d7d1a4054f in mainline linux
drm, fbcon, vga_switcheroo: Avoid race condition in fbcon setup
From Thomas Zimmermann
482330f8261b4bea8146d9bd69c1199e5dfcbb5c in linux-6.12.y/6.12.61
eb76d0f5553575599561010f24c277cc5b31d003 in mainline linux