]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
4 months agoinet(3): clarify syntax accepted by inet_pton
Mike Karels [Sat, 27 Jan 2024 15:40:07 +0000 (09:40 -0600)]
inet(3): clarify syntax accepted by inet_pton

The section INTERNET ADDRESSES describes the acceptance of dotted
values with varying number of parts in multiple bases.  This applies
to inet_aton and inet_addr, but not to inet_pton.  Clarify this
section by listing the functions to which this applies.  Move the
description of what inet_pton accepts into this section from STANDARDS,
where it is easily missed.  Rename the section to clarify that it
applies only to IPv4.  (inet_pton also works with IPv6.)

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43537

4 months agoreleng-gce: Advertise the availability of UEFI support in GCE images.
Xin LI [Sat, 27 Jan 2024 03:09:39 +0000 (19:09 -0800)]
releng-gce: Advertise the availability of UEFI support in GCE images.

The amd64 and arm64 images supported UEFI, mark it as so users can take
advantage of UEFI boot on GCE.  This is already done on FreeBSD
14.0-RELEASE but never codified into the release tools (and should).

PR: conf/276532
Reviewed by: lwhsu
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D43557

4 months agomakefs: warn that ffs sectorsize other than 512 may not work
Ed Maste [Thu, 25 Jan 2024 01:47:36 +0000 (20:47 -0500)]
makefs: warn that ffs sectorsize other than 512 may not work

newfs always sets sectorsize to DEV_BSIZE (512) and derives some other
values based on the number of 512-byte sectors per real sector.  Similar
logic is required in makefs.  Until that happens, emit a warning that
the image may be incorrect.

PR: 276571

4 months agoSCHEDULER_STOPPED(): Rely on a global variable
Olivier Certner [Thu, 18 Jan 2024 13:10:18 +0000 (14:10 +0100)]
SCHEDULER_STOPPED(): Rely on a global variable

A commit from 2012 (5d7380f8e34f0083, r228424) introduced
'td_stopsched', on the ground that a global variable would cause all
CPUs to have a copy of it in their cache, and consequently of all other
variables sharing the same cache line.

This is really a problem only if that cache line sees relatively
frequent modifications.  This was unlikely to be the case back then
because nearby variables are almost never modified as well.  In any
case, today we have a new tool at our disposal to ensure that this
variable goes into a read-mostly section containing frequently-accessed
variables ('__read_frequently').  Most of the cache lines covering this
section are likely to always be in every CPU cache.  This makes the
second reason stated in the commit message (ensuring the field is in the
same cache line as some lock-related fields, since these are accessed in
close proximity) moot, as well as the second order effect of requiring
an additional line to be present in the cache (the one containing the
new 'scheduler_stopped' boolean, see below).

From a pure logical point of view, whether the scheduler is stopped is
a global state and is certainly not a per-thread quality.

Consequently, remove 'td_stopsched', which immediately frees a byte in
'struct thread'.  Currently, the latter's size (and layout) stays
unchanged, but some of the later re-orderings will probably benefit from
this removal.  Available bytes at the original position for
'td_stopsched' have been made explicit with the addition of the
'_td_pad0' member.

Store the global state in the new 'scheduler_stopped' boolean, which is
annotated with '__read_frequently'.

Replace uses of SCHEDULER_STOPPED_TD() with SCHEDULER_STOPPER() and
remove the former as it is now unnecessary.

Reviewed by:            markj, kib
Approved by:            markj (mentor)
MFC after:              2 weeks
Sponsored by:           The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D43572

4 months agoSCHEDULER_STOPPED(): Move it (back) to 'systm.h'
Olivier Certner [Thu, 18 Jan 2024 10:31:59 +0000 (11:31 +0100)]
SCHEDULER_STOPPED(): Move it (back) to 'systm.h'

It's not an assertion, so doesn't logically belong to 'kassert.h'.
Moreover, a subsequent commit will make it rely on a variable whose
declaration also belongs to 'systm.h'.

Approved by:            markj (mentor)
MFC after:              2 weeks
Sponsored by:           The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D43571

4 months agoAnnotate 'rebooting' with __read_mostly
Olivier Certner [Thu, 18 Jan 2024 10:22:28 +0000 (11:22 +0100)]
Annotate 'rebooting' with __read_mostly

While here, put such annotation after the variable for 'dumping', since
it concerns the variable and not the type.

Reviewed by:            markj
Approved by:            markj (mentor)
MFC after:              2 weeks
Sponsored by:           The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D43570

4 months agopanic()/KERNEL_PANICKED(): Move back to using 'panicstr' as a flag
Olivier Certner [Thu, 18 Jan 2024 10:15:18 +0000 (11:15 +0100)]
panic()/KERNEL_PANICKED(): Move back to using 'panicstr' as a flag

Currently, no performance-critical path tests for a panic.  Moreover, we
today have KERNEL_PANICKED() which wraps the test into
__predict_false(), already catering to those (potential) use cases.
Also, in practice we don't support 64-bit architectures without caches,
so reading an 'int' instead of a pointer doesn't (directly) save any
memory access.  Finally, 'panicked' is redundant with 'panicstr' (and
wastes a tiny amount of memory).

Consequently:
1. Use again 'panicstr' as a flag indicating that the system is
panicking.  To this end:
  - Modify panic() so that it ensures this pointer is set to some
    non-NULL value even if the caller didn't pass any panic string.
  - Modify KERNEL_PANICKED() to test for 'panicstr'.
  - Remove 'panicked'.
2. Annotate 'panicstr' with '__read_mostly' (instead of using
'__read_frequently' as for 'panicked').  This may have to be changed if,
in the future, some performance-intensive path needs to test it.
3. Convert a few more direct tests of 'panicstr' to using
KERNEL_PANICKED().

Reviewed by:            kib, markj, emaste
Approved by:            markj (mentor)
MFC after:              2 weeks
Sponsored by:           The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D43569

4 months agojail: expose children.max and children.cur via sysctl
Jamie Gritton [Fri, 26 Jan 2024 17:45:40 +0000 (09:45 -0800)]
jail: expose children.max and children.cur via sysctl

Submitted by: Igor Ostapenko <igor.ostapenko_pm.me>
Differential Revision: <https://reviews.freebsd.org/D43565>

4 months agoarm64: Remove pmap_san_bootstrap() and call kasan_init_early() directly
Mark Johnston [Fri, 26 Jan 2024 15:35:40 +0000 (10:35 -0500)]
arm64: Remove pmap_san_bootstrap() and call kasan_init_early() directly

pmap_san_bootstrap() doesn't really do much, and it was hard-coding the
the bootstrap stack size defined in locore.S.  Moreover, the name is a
bit confusing given the existence of pmap_bootstrap_san().  Just remove
it and call kasan_init_early() directly like we do on amd64.  It will
not be used by KMSAN in a forthcoming patch series.

No functional change intended.

MFC after: 1 week
Sponsored by: Klara, Inc.
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D43403

4 months agoopen: make non-POSIX errno value more apparent
Ed Maste [Fri, 26 Jan 2024 15:19:04 +0000 (10:19 -0500)]
open: make non-POSIX errno value more apparent

In the errno list, add an explicit note and reference to the note in the
STANDARDS section.

When O_NOFOLLOW is specified and the target is a symbolic link FreeBSD
sets errno to a value different than that specified by POSIX.  Commit
295159dfa3ed added a note to this effect, but I missed it when reading
through the list of errno values.

PR: 214633
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D43618

4 months agotests: fix typo in a comment
Gleb Smirnoff [Fri, 26 Jan 2024 06:19:35 +0000 (22:19 -0800)]
tests: fix typo in a comment

4 months agotcp: commonize check for more data to send, style changes
Richard Scheffenegger [Thu, 25 Jan 2024 23:19:30 +0000 (00:19 +0100)]
tcp: commonize check for more data to send, style changes

Use SEQ_SUB instead of a plain subtraction, for an implict
type conversion and prevention of a possible overflow.
Use curly brackets in stacked if statements throughout.
Use of the ? operator to enhance readability when clearing
the FIN flag in tcp_output().

None of the above change the function.

Reviewed By:           tuexen, cc, #transport
Sponsored by:          NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D43539

4 months agoldscript.powerpc*: Only put .dynamic in PT_DYNAMIC
Jessica Clarke [Fri, 26 Jan 2024 00:19:02 +0000 (00:19 +0000)]
ldscript.powerpc*: Only put .dynamic in PT_DYNAMIC

Currently there are a few output sections left as implicitly using
:kernel :dynamic before :kernel on its own is used again, which means
they end up in both the PT_LOAD and the PT_DYNAMIC segments, an unusual
situation which the new libelf-based kldxref initially treated as
invalid. Thus, hoist the :kernel to the very next section to ensure only
.dynamic is in PT_DYNAMIC, as is more normal.

Whilst here, sync ldscript.powerpc64le with ldscript.powerpc64 to pick
up various fixes that were presumably made between the start of the
powerpc64le port and it being committed and got missed.

Reviewed by: jhibbits, jhb
Differential Revision: https://reviews.freebsd.org/D43066

4 months agotcp: AccECN access ACE field by shifting bits
Richard Scheffenegger [Thu, 25 Jan 2024 22:21:07 +0000 (23:21 +0100)]
tcp: AccECN access ACE field by shifting bits

Shifting bits is quicker than checking header flag bits
one by one. Also improve readability by the use of switch
statements.

No change in behaviour.

Reviewed By:           glebius, tuexen, #transport
Sponsored by:          NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D43560

4 months agotcp: fix TCPSTAT accounting for SACK
Richard Scheffenegger [Thu, 25 Jan 2024 21:03:36 +0000 (22:03 +0100)]
tcp: fix TCPSTAT accounting for SACK

Account for SACK retransmitted bytes once the actual length
is known. This prevents a call to tcp_maxseg() and prepares
for TSO support when transmitting from the SACK scoreboard.

Reviewed By:           tuexen, #transport
Sponsored by:          NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D43447

4 months agoarm64: Add a VM_FREELIST_DMA32 freelist
Mark Johnston [Thu, 25 Jan 2024 21:33:46 +0000 (16:33 -0500)]
arm64: Add a VM_FREELIST_DMA32 freelist

When booting a KMSAN kernel on an Ampere Altra, I've seen some boot time
hangs when the XHCI controller driver attempts to allocate memory for
32-bit DMA.  The system boots fine with a GENERIC kernel; I believe that
the additional memory requirements of KMSAN push it over the edge.  The
system has a bit less than 2GB of RAM below the 4GB boundary.

Allocate a new freelist to segregate memory below 4GB, as we do on
amd64, so that such memory allocation failures are less likely to occur.

Reviewed by: alc
MFC after: 1 month
Sponsored by: Klara, Inc.
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D43503

4 months agoMerge libcxxrt master 03c83f5a57be8c5b1a29a68de5638744f17d28ba
Dimitry Andric [Thu, 25 Jan 2024 17:41:44 +0000 (18:41 +0100)]
Merge libcxxrt master 03c83f5a57be8c5b1a29a68de5638744f17d28ba

Interesting fixes (* were already cherry-picked):
03c83f5 add __cxa_init_primary_exception (#23)
5d8a158 Fix two bugs in __cxa_end_cleanup()
b00c6c5 Insert padding in __cxa_dependent_exception
45ca8b1 Insert padding in __cxa_exception struct for compatibility
f2e5509 Fix unlock in two-word version and add missing comment.
6229590 Add an option for disabling emergency buffers. (#14)

MFC after: 2 weeks

4 months agoImport libcxxrt master 03c83f5a57be8c5b1a29a68de5638744f17d28ba
Dimitry Andric [Thu, 25 Jan 2024 17:05:41 +0000 (18:05 +0100)]
Import libcxxrt master 03c83f5a57be8c5b1a29a68de5638744f17d28ba

Interesting fixes:
03c83f5 add __cxa_init_primary_exception (#23)
5d8a158 Fix two bugs in __cxa_end_cleanup()
b00c6c5 Insert padding in __cxa_dependent_exception
45ca8b1 Insert padding in __cxa_exception struct for compatibility
f2e5509 Fix unlock in two-word version and add missing comment.
6229590 Add an option for disabling emergency buffers. (#14)

4 months agopflow: show socket status in verbose mode
Kristof Provost [Thu, 25 Jan 2024 16:37:51 +0000 (17:37 +0100)]
pflow: show socket status in verbose mode

Introduce a verbose output mode to pflowctl, and expose the status of
the socket to userspace. This can be helpful in debugging configuration
errors.

Sponsored by: Rubicon Communications, LLC ("Netgate")

4 months agoman: support special characters in filenames
Wolfram Schneider [Thu, 25 Jan 2024 07:14:06 +0000 (07:14 +0000)]
man: support special characters in filenames

man.sh needs to handle double quotes and sub shell character
as '`' '$' etc.

PR: 275967
Reviewed by: bapt

MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D43453

4 months agoRevert "nl_types.h: explicitly include cdefs.h"
Ed Maste [Thu, 25 Jan 2024 03:49:45 +0000 (22:49 -0500)]
Revert "nl_types.h: explicitly include cdefs.h"

This isn't the right approach for addressing this cross-build issue.

This reverts commit 820401bf176996e41091d2e4190aded12a966b1d.

4 months agoriscv: Convert local interrupt controller to a newbus PIC
Jessica Clarke [Wed, 24 Jan 2024 23:49:54 +0000 (23:49 +0000)]
riscv: Convert local interrupt controller to a newbus PIC

Currently the local interrupt controller implementation is based on
pre-INTRNG arm/arm64 code, using hand-rolled event code rather than
INTRNG. This then interacts weirdly with the PLIC, and other future
interrupt controllers like the APLIC and IMSICs in the upcoming AIA
specification, since they become the root PIC despite not being the
logical root. Instead, use a real newbus device for it and register
it as the root PIC.

This also adapts the IPI code to make use of the newly-added INTRNG
generic IPI handling framework, adding a new sbi_ipi as the PIC. In
future there will be alternative devices for sending IPIs that will
register with higher priorities, such as the proposed AIA IMSIC and
ACLINT SSWI.

Reviewed by: mhorne
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D35901

4 months agoriscv: Create a newbus device for the SBI driver
Jessica Clarke [Wed, 24 Jan 2024 23:49:54 +0000 (23:49 +0000)]
riscv: Create a newbus device for the SBI driver

This approach is based on the Arm PSCI driver, though that makes more
extensive use of its softc than we do here. This will be used to extract
the SBI IPI code as a real PIC.

Reviewed by: mhorne, imp
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D35900

4 months agointrng: Allow alternative IPI PICs to be registered and used
Jessica Clarke [Wed, 24 Jan 2024 23:49:54 +0000 (23:49 +0000)]
intrng: Allow alternative IPI PICs to be registered and used

On RISC-V, the root PIC (whether the PLIC or, as will be the case in
future, the local interrupt controller) cannot send IPIs, relying on
another means to trigger the necessary software interrupts (firmware
calls), but there are upcoming standard devices that will be able to
inject them, so we can't just put the firmware calls in the root PIC
driver.

Thus, split out a new intr_ipi_dev from intr_irq_root_dev to use for
sending IPIs. New devices can be registered with a given priority up
until the first IPI is set up, when the best device seen so far gets
frozen as the IPI device to use.

Reviewed by: mhorne
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D35899

4 months agointrng: Extract arm/arm64 IPI->PIC glue code
Jessica Clarke [Wed, 24 Jan 2024 23:49:53 +0000 (23:49 +0000)]
intrng: Extract arm/arm64 IPI->PIC glue code

The arm and arm64 implementations of dispatching IPIs via PIC_IPI_SEND
are almost identical, and entirely MI with the lone exception of a
single store barrier on arm64 (that is likely either redundant or needed
on arm too). Thus, de-duplicate this code by moving it to INTRNG as a
generic IPI glue framework. The ipi_* functions remain declared in MD
smp.h headers and implemented in MD code, but are trivial wrappers
around intr_ipi_send that could be made MI, at least for INTRNG ports,
at a later date.

Note that, whilst both arm and arm64 had an ii_send member in intr_ipi
to abstract over how to send interrupts,, they were always ultimately
using PIC_IPI_SEND, and so this complexity has been removed. A follow-up
commit will re-introduce the same flexibility by instead allowing a
device other than the root PIC to be registered as the IPI sender.

As part of this, strengthen a MAXCPU assertion that was missed in commit
2f0b059eeafc ("intrng: switch from MAXCPU to mp_ncpus") (which itself is
mis-titled).

Reviewed by: mmel, mhorne
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D35898

4 months agointrng: Remove irq_root_ipicount and corresponding intr_pic_claim_root arg
Jessica Clarke [Wed, 24 Jan 2024 23:49:53 +0000 (23:49 +0000)]
intrng: Remove irq_root_ipicount and corresponding intr_pic_claim_root arg

The static irq_root_ipicount variable is only ever written to (with the
value passed to irq_root_ipicount), never read. Moreover, the bcm2836
driver, as used by the Raspberry Pi 2B and 3A/B (but not 4, which uses a
GIC-400, though does have the legacy interrupt controller present too)
passes 0 as ipicount, despite implementing IPIs. It's thus inaccurate
and serves no purpose, so should be removed.

Reviewed by: mmel, imp, mhorne
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D35897

4 months agompsutil: Clean up libutil deps
Mark Johnston [Wed, 24 Jan 2024 19:47:56 +0000 (14:47 -0500)]
mpsutil: Clean up libutil deps

mpsutil doesn't use libutil, so doesn't need to include libutil.h.  See
commit 76103694a051335bec1da318f9c6e3a676dc0145.

No functional change intended.

MFC after: 1 week

4 months agonl_types.h: explicitly include cdefs.h
Val Packett [Tue, 16 Jan 2024 18:42:26 +0000 (15:42 -0300)]
nl_types.h: explicitly include cdefs.h

This file uses __BEGIN_DECLS/__END_DECLS. When bootstrapping from
Linux/musl, they were missing.

Sponsored by: https://www.patreon.com/valpackett
Pull Request: https://github.com/freebsd/freebsd-src/pull/1066

4 months agomount: document atime option
Ed Maste [Wed, 24 Jan 2024 16:26:23 +0000 (11:26 -0500)]
mount: document atime option

atime is enabled by default, but may be specified explicitly so that any
future change in the default would not have an effect on a given mount.

Reviewed by: olce, rgrimes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D43580

4 months agokern: tty: fix recanonicalization
Kyle Evans [Wed, 24 Jan 2024 19:36:26 +0000 (13:36 -0600)]
kern: tty: fix recanonicalization

`ti->ti_begin` is actually the offset within the first block that is
unread, so we must use that for our lower bound.

Moving to the previous block has to be done at the end of the loop in
order to correctly handle the case of ti_begin == TTYINQ_DATASIZE.  At
that point, lastblock is still the last one with data written and the
next write into the queue would advance lastblock.  If we move to the
previous block at the beginning, then we're essentially off by one block
for the entire scan and run the risk of running off the end of the block
queue.

The ti_begin == 0 case is still handled correctly, as we skip the loop
entirely and the linestart gets recorded as the first byte available for
writing.  The bit after the loop about moving to the next block is also
still correct, even with both previous fixes in mind: we skipped moving
to the previous block if we hit ti_begin, and `off + 1` would in-fact be
a member of the next block from where we're reading if it falls on a
block boundary.

Reported by: dim
Fixes: 522083ffbd1ab ("kern: tty: recanonicalize the buffer on [...]")

4 months agopflowctl: fix usage message
Kristof Provost [Wed, 24 Jan 2024 19:35:35 +0000 (20:35 +0100)]
pflowctl: fix usage message

Reported by: Jim Pingle <jimp@netgate.com>
Sponsored by: Rubicon Communications, LLC ("Netgate")

4 months agopf: only check MTU for IPv6 packets when forwarding
Kristof Provost [Wed, 24 Jan 2024 16:34:01 +0000 (17:34 +0100)]
pf: only check MTU for IPv6 packets when forwarding

When the packets are generated locally (i.e. PFIL_FWD is not set) we
might generate overly large packets and rely on the NIC to fragment it
for us. In that case we'd reject a valid packet.

Reported by: Herbert J. Skuhra <herbert@gojira.at>
Tested by: Herbert J. Skuhra <herbert@gojira.at>
Fixes: 54c62e3e5d8cd90c5571a1d4c8c5f062d580480e
Sponsored by: Rubicon Communications, LLC ("Netgate")

4 months agoccdconfig: remove obsolete references to BSD disklabels
Ed Maste [Wed, 24 Jan 2024 15:05:09 +0000 (10:05 -0500)]
ccdconfig: remove obsolete references to BSD disklabels

ccd(4) previoulsy had knowledge of BSD disklabels, and relied on their
use on the underlying disks, but this hasn't been the case since 2003
(commit 0f76d6d822f4).

Remove disklabel references from the man page.

Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D43574

4 months agocallout: retire callout_async_drain()
Gleb Smirnoff [Wed, 24 Jan 2024 17:33:27 +0000 (09:33 -0800)]
callout: retire callout_async_drain()

This function was used only in TCP before 446ccdd08e2a.  It was born in
pain in 2016 to plug different complex panics in TCP timers.  It wasn't
warmly accepted in phabricator by all of the reviewers and my recollection
of overall agreement was that "if you need this KPI, then you'd better fix
your code to not need it".  However, the function served its duty well all
the way to FreeBSD 14.  But now that TCP doesn't need it anymore, let's
retire it to reduce complexity of callout code and also to avoid its
further use.

Reviewed by: jhb, markj, kib, rrs
Differential Revision: https://reviews.freebsd.org/D43546

4 months agotcp: pass maxseg around instead of calculating locally
Richard Scheffenegger [Wed, 24 Jan 2024 15:42:29 +0000 (16:42 +0100)]
tcp: pass maxseg around instead of calculating locally

Improve slowpath processing (reordering, retransmissions)
slightly by calculating maxseg only once. This typically
saves one of two calls to tcp_maxseg().

Reviewed By:           glebius, tuexen, cc, #transport
Sponsored by:          NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D43536

4 months agokcmp: Add a manual page
Mark Johnston [Wed, 24 Jan 2024 14:41:31 +0000 (09:41 -0500)]
kcmp: Add a manual page

Reviewed by: kib, emaste
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D43562

4 months agorelease: rework distributions list
Ed Maste [Mon, 22 Jan 2024 14:49:02 +0000 (09:49 -0500)]
release: rework distributions list

Components like base.txz and ports.txz are called distributions in the
installer, and with the introduction of pkgbase we will start dealing
with normal pkg packages in the installer.  Rename EXTRA_PACKAGES to
DISTRIBUTIONS, and move base.txz and kernel.txz to that list.

This introduces no functional change but is a small cleanup in advance
of some pkgbase experimentation.

Reviewed by: cperciva
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D43544

4 months agocrunch: remove fdisk from examples
Ed Maste [Tue, 23 Jan 2024 18:28:07 +0000 (13:28 -0500)]
crunch: remove fdisk from examples

It has been deprecated for a long time; gpart should be used instead.
The man page was updated in 2015 to declare it obsolete (b8c19fd719945).

4 months agozfs: merge openzfs/zfs@a4bf6baae
Martin Matuska [Wed, 24 Jan 2024 11:41:22 +0000 (12:41 +0100)]
zfs: merge openzfs/zfs@a4bf6baae

Notable upstream pull request merges:
 #15630 a4bf6baae FreeBSD: Fix file descriptor leak on pool import
 #15780 d9cb42da9 FreeBSD: Fix bootstrapping tools under Linux/musl

Obtained from: OpenZFS
OpenZFS commit: a4bf6baaeb70a01a4c13fd6139ebdc97bad172e9

4 months agojoin(1): Fix ordering in case of missing fields
Tijl Coosemans [Mon, 22 Jan 2024 10:35:31 +0000 (11:35 +0100)]
join(1): Fix ordering in case of missing fields

The comparison function had the ordering reversed causing join(1) to
miss some matching lines.

PR: 232405
Submitted by: Martijn van Duren <martijn@openbsd.org>
MFC after: 1 week

4 months agostress2: Remove fdisk(8) regression test
Peter Holm [Wed, 24 Jan 2024 08:55:34 +0000 (09:55 +0100)]
stress2: Remove fdisk(8) regression test

4 months agostress2: remove the usage of fdisk(8) as this is soon to be removed
Peter Holm [Wed, 24 Jan 2024 08:54:17 +0000 (09:54 +0100)]
stress2: remove the usage of fdisk(8) as this is soon to be removed

4 months agoBump __FreeBSD_version for kern_openatfp(9) and kcmp(2)
Konstantin Belousov [Tue, 23 Jan 2024 22:57:02 +0000 (00:57 +0200)]
Bump __FreeBSD_version for kern_openatfp(9) and kcmp(2)

4 months agoAdd kern_openatfp(9)
Konstantin Belousov [Sat, 20 Jan 2024 20:34:46 +0000 (22:34 +0200)]
Add kern_openatfp(9)

Reviewed by: markj, pjd
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43529

4 months agokern_openat(): minor style fixes
Konstantin Belousov [Sat, 20 Jan 2024 21:42:39 +0000 (23:42 +0200)]
kern_openat(): minor style fixes

Reviewed by: markj, pjd
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43529

4 months agokern_openat(): rename fd argument to dirfd
Konstantin Belousov [Sat, 20 Jan 2024 21:41:12 +0000 (23:41 +0200)]
kern_openat(): rename fd argument to dirfd

Reviewed by: markj, pjd
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43529

4 months agoregen
Konstantin Belousov [Fri, 19 Jan 2024 19:55:42 +0000 (21:55 +0200)]
regen

4 months agokcmp(2): implement for procdesc
Konstantin Belousov [Fri, 19 Jan 2024 22:37:39 +0000 (00:37 +0200)]
kcmp(2): implement for procdesc

Reviewed by: brooks, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43518

4 months agokcmp(2): implement for linuxkpi cdevs
Konstantin Belousov [Fri, 19 Jan 2024 21:54:03 +0000 (23:54 +0200)]
kcmp(2): implement for linuxkpi cdevs

Reviewed by: brooks, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D43518

4 months agokcmp(2): implement for devfs files
Konstantin Belousov [Fri, 19 Jan 2024 21:36:50 +0000 (23:36 +0200)]
kcmp(2): implement for devfs files

Compare not vnodes, which are different between mount points, but
actual cdev referenced by the devfs node.

Reviewed by: brooks, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D43518

4 months agokcmp(2): implement for vnode files
Konstantin Belousov [Fri, 19 Jan 2024 21:24:31 +0000 (23:24 +0200)]
kcmp(2): implement for vnode files

Reviewed by: brooks, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43518

4 months agokcmp(2): implement for generic file types
Konstantin Belousov [Fri, 19 Jan 2024 21:44:37 +0000 (23:44 +0200)]
kcmp(2): implement for generic file types

Reviewed by: brooks, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43518

4 months agoAdd kcmp(2) userspace bits
Konstantin Belousov [Fri, 19 Jan 2024 19:55:11 +0000 (21:55 +0200)]
Add kcmp(2) userspace bits

Unlike Linux, we do provide libc wrapper.  All definitions and
prototypes are available from <unistd.h>

Tested by: manu
Reviewed by: brooks, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D43518

4 months agoAdd kcmp(2) kernel bits
Konstantin Belousov [Fri, 19 Jan 2024 19:49:36 +0000 (21:49 +0200)]
Add kcmp(2) kernel bits

This is based purely on reading the Linux kcmp(2) man page.
In addition to the Linux set of comparators, I also added KCMP_FILEOBJ to
compare underlying file' objects.

Tested by: manu
Reviewed by: brooks, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D43518

4 months agofile: add fo_cmp method
Konstantin Belousov [Fri, 19 Jan 2024 21:01:35 +0000 (23:01 +0200)]
file: add fo_cmp method

The method should return 0 if the file' underlying objects are same.  In
other words, if 0 is returned, io from either of file causes
modifications of the same object.

Reviewed by: brooks, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D43518

4 months agoAdd fget_remote()
Konstantin Belousov [Mon, 22 Jan 2024 22:31:55 +0000 (00:31 +0200)]
Add fget_remote()

The function holds and returns struct file for a file descriptor index
in the given process.

Reviewed by: brooks, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43518

4 months agosys/file.h: style
Konstantin Belousov [Sat, 20 Jan 2024 21:49:11 +0000 (23:49 +0200)]
sys/file.h: style

Reviewed by: brooks, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43518

4 months agoncurses: serialize the tinfo build a little bit
Kyle Evans [Wed, 24 Jan 2024 05:00:36 +0000 (23:00 -0600)]
ncurses: serialize the tinfo build a little bit

Move ncurses_dll.h to GENHDRS to start with; it's been generated from
ncurses_dll.h.in for years, so it's not actually in a different category
than all of the other GENHDRS.  Slap an .ORDER on it to ensure that we
build ncurses_dll.h and curses.h before any *.c gets compiled.

This should sufficiently address a build race seen downstream where
ncurses_dll.h is present but not yet populated.

Reviewed by: bapt
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D43540

4 months agoFix file descriptor leak on pool import.
Pawel Jakub Dawidek [Tue, 23 Jan 2024 23:03:48 +0000 (15:03 -0800)]
Fix file descriptor leak on pool import.

Descriptor leak can be easily reproduced by doing:

# zpool import tank
# sysctl kern.openfiles
# zpool export tank; zpool import tank
# sysctl kern.openfiles

We were leaking four file descriptors on every import.

Similar leak most likely existed when using file-based VDEVs.

External-issue: https://reviews.freebsd.org/D43529
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Pawel Jakub Dawidek <pawel@dawidek.net>
Closes #15630

4 months agotcp: remove 20+ year old disabled code from d912c694ee00
Gleb Smirnoff [Tue, 23 Jan 2024 21:16:34 +0000 (13:16 -0800)]
tcp: remove 20+ year old disabled code from d912c694ee00

4 months agotcp: clear outdated comment mentioning T/TCP
Gleb Smirnoff [Tue, 23 Jan 2024 20:54:43 +0000 (12:54 -0800)]
tcp: clear outdated comment mentioning T/TCP

4 months agotcp: pass positive errno to tcp_drop()
Gleb Smirnoff [Tue, 23 Jan 2024 20:52:55 +0000 (12:52 -0800)]
tcp: pass positive errno to tcp_drop()

Fixes: 446ccdd08e2a9f704f6348cd7f679e59183b99b3

4 months agotmpfs: increase vfs.tmpfs.memory_percent to 100 as workaround
Mike Karels [Tue, 23 Jan 2024 17:23:38 +0000 (11:23 -0600)]
tmpfs: increase vfs.tmpfs.memory_percent to 100 as workaround

The changes to avoid letting tmpfs use all of memory + swap do not
work well with ZFS ARC.  The ARC can grow quite large, and will shrink
when there is memory pressure, but tmpfs does not allow for that.
Pending investigation of the right way to handle this, change the
default value of the vfs.tmpfs.memory_percent sysctl to 100 as a
workaround.  The sysctl can be set to 95 to get back to the previous
default.

4 months agomtree: stop creating old mixer(8) test directories
Dimitry Andric [Tue, 23 Jan 2024 18:40:01 +0000 (19:40 +0100)]
mtree: stop creating old mixer(8) test directories

The tests themselves were added to ObsoleteFiles.inc in commit
f7c4f4964971, but not yet removed from BSD.tests.dist.

PR: 274602
Fixes: f7c4f4964971

4 months agopowerpc: Add RF_LITTLEENDIAN resource flag
John Baldwin [Tue, 23 Jan 2024 17:38:36 +0000 (09:38 -0800)]
powerpc: Add RF_LITTLEENDIAN resource flag

If this powerpc-specific flag is set on a resource, then the
little-endian bus tag is always used when mapping that resource.

Make use of this flag in the mpc85xx/fsl_sata driver to avoid setting
the SATA BAR's bus tag after bus_alloc_resource.

Reviewed by: jhibbits
Differential Revision: https://reviews.freebsd.org/D43553

4 months agosimplebus: Consistently map SYS_RES_IOPORT to SYS_RES_MEMORY
John Baldwin [Tue, 23 Jan 2024 17:38:25 +0000 (09:38 -0800)]
simplebus: Consistently map SYS_RES_IOPORT to SYS_RES_MEMORY

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43442

4 months agoofw_pcib: Use bus_generic_rman_*
John Baldwin [Tue, 23 Jan 2024 17:38:09 +0000 (09:38 -0800)]
ofw_pcib: Use bus_generic_rman_*

- Implement bus_map/unmap_resource pulling bits from the previous
  ofw_pcib_activate/deactivate_resource.  One difference here is that
  the bus_unmap_resource implementation uses bus_space_unmap instead
  of pmap_unmapdev as a complement to the existing use of bus_space_map.

- Use bus_generic_rman_* in various routines for memory and I/O port
  resources.

- Use pci_domain_* for PCI_RES_BUS in
  ofw_pcib_activate/deactivate_resource.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43441

4 months agopowerpc: Fix bus_space_unmap
John Baldwin [Tue, 23 Jan 2024 17:37:53 +0000 (09:37 -0800)]
powerpc: Fix bus_space_unmap

Previously it failed to compile since the macro passed too many
arguments to the function.  Fix by adding the bus handle to the
function and adding an implementation that calls pmap_unmapdev.

Reviewed by: jhibbits
Differential Revision: https://reviews.freebsd.org/D43440

4 months agoarm64 thunder: Use bus_generic_rman_* in the pcie_pem driver
John Baldwin [Tue, 23 Jan 2024 17:37:41 +0000 (09:37 -0800)]
arm64 thunder: Use bus_generic_rman_* in the pcie_pem driver

- Implement bus_map/unmap_resource pulling bits from the previous
  thunder_pem_activate/deactivate_resource.

- Use bus_generic_rman_* in various routines for memory and I/O port
  resources.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43439

4 months agoarm mv_pcib: Use bus_generic_rman_*
John Baldwin [Tue, 23 Jan 2024 17:37:30 +0000 (09:37 -0800)]
arm mv_pcib: Use bus_generic_rman_*

- Implement bus_get_rman pulling bits from mv_pcib_alloc_resource.

- Implement bus_map/unmap_resource pulling bits from
  mv_pcib_activate/deactivate_resource.

- Use bus_generic_rman_* to handle memory and I/O resources for
  mv_pcib_alloc/activate/adjust/deactivate/release_resource.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43438

4 months agoarm nexus: Use bus_generic_rman_*
John Baldwin [Tue, 23 Jan 2024 17:37:13 +0000 (09:37 -0800)]
arm nexus: Use bus_generic_rman_*

- Implement bus_get_rman pulling bits from nexus_alloc_resource.

- Implement bus_map/unmap_resource pulling bits from
  nexus_activate/deactivate_resource.

- Use bus_generic_rman_* for
  bus_alloc/adjust/activate/deactivate/release_resource except for
  custom interrupt activate/deactivate logic still in
  nexus_activate/deactivate_resource.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43437

4 months agopowerpc nexus: Use bus_generic_rman_*
John Baldwin [Tue, 23 Jan 2024 17:37:02 +0000 (09:37 -0800)]
powerpc nexus: Use bus_generic_rman_*

Reviewed by: imp, jhibbits
Differential Revision: https://reviews.freebsd.org/D43436

4 months agopowerpc powermac: Use bus_generic_rman_*
John Baldwin [Tue, 23 Jan 2024 17:36:49 +0000 (09:36 -0800)]
powerpc powermac: Use bus_generic_rman_*

Implement bus_map/unmap_resource and add bus_get_rman for use by
bus_generic_rman_*.

Reviewed by: imp, jhibbits
Differential Revision: https://reviews.freebsd.org/D43435

4 months agopowerpc mpc85xx: Use bus_generic_rman_*
John Baldwin [Tue, 23 Jan 2024 17:36:37 +0000 (09:36 -0800)]
powerpc mpc85xx: Use bus_generic_rman_*

- Consistently map SYS_RES_IOPORT to SYS_RES_MEMORY for
  bus_activate/deactivate/adjust/release_resource.

- Implement bus_map/unmap_resource.

- Add an implementation of bus_adjust_resource.

Reviewed by: jhibbits
Differential Revision: https://reviews.freebsd.org/D43434

4 months agopowerpc psim: Use bus_generic_rman_*
John Baldwin [Tue, 23 Jan 2024 17:36:26 +0000 (09:36 -0800)]
powerpc psim: Use bus_generic_rman_*

- Split out bits of iobus_activate/deactive_resource to implement
  iobus_map/unmap_resource.

- Use bus_generic_rman_* methods in several bus methods to handle
  memory and I/O port resources.

- Add an implementation of bus_adjust_resource.

Reviewed by: imp, jhibbits
Differential Revision: https://reviews.freebsd.org/D43433

4 months agopowerpc ps3bus: Use bus_generic_rman_*
John Baldwin [Tue, 23 Jan 2024 17:36:12 +0000 (09:36 -0800)]
powerpc ps3bus: Use bus_generic_rman_*

- Split out part of ps3bus_activate_resource into a
  ps3bus_map_resource method.

- Implement ps3bus_unmap_resource via pmap_unmapdev.

- Use bus_generic_rman_* to add bus_adjust_resource,
  bus_deactivate_resource, and bus_release_resource methods.

Reviewed by: imp, jhibbits
Differential Revision: https://reviews.freebsd.org/D43432

4 months agohyperv vmbus_pcib: Use pci_domain_*_bus for PCI_RES_BUS resources
John Baldwin [Tue, 23 Jan 2024 17:35:58 +0000 (09:35 -0800)]
hyperv vmbus_pcib: Use pci_domain_*_bus for PCI_RES_BUS resources

Specifically for bus_activate/adjust/deactivate_bus methods.

Differential Revision: https://reviews.freebsd.org/D43431

4 months agox86: Use pci_domain_[de]activate_bus for PCI_RES_BUS resources
John Baldwin [Tue, 23 Jan 2024 17:35:47 +0000 (09:35 -0800)]
x86: Use pci_domain_[de]activate_bus for PCI_RES_BUS resources

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43430

4 months agopci_host_generic: Use pci_domain_[de]activate_bus for PCI_RES_BUS resources
John Baldwin [Tue, 23 Jan 2024 17:35:36 +0000 (09:35 -0800)]
pci_host_generic: Use pci_domain_[de]activate_bus for PCI_RES_BUS resources

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43429

4 months agoacpi_pcib: Use pci_domain_[de]activate_bus for PCI_RES_BUS resources
John Baldwin [Tue, 23 Jan 2024 17:35:22 +0000 (09:35 -0800)]
acpi_pcib: Use pci_domain_[de]activate_bus for PCI_RES_BUS resources

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43428

4 months agopcib: Add helper routines for [de]activating PCI_RES_BUS resources
John Baldwin [Tue, 23 Jan 2024 17:35:08 +0000 (09:35 -0800)]
pcib: Add helper routines for [de]activating PCI_RES_BUS resources

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D43427

4 months agobhyve: Prepare to add arm64 support to the gdb stub
Mark Johnston [Tue, 23 Jan 2024 16:41:13 +0000 (11:41 -0500)]
bhyve: Prepare to add arm64 support to the gdb stub

In particular:
- Stop assuming that the breakpoint size is one byte.
- Avoid referencing the "rip" field in machine-independent code, use a
  helper.

No functional change intended.

Reviewed by: corvink, jhb
MFC after: 1 week
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D43483

4 months agobhyve: Simplify register definitions a bit
Mark Johnston [Tue, 23 Jan 2024 16:40:52 +0000 (11:40 -0500)]
bhyve: Simplify register definitions a bit

It's awkward to have separate tables for information which is logically
connected.  Merge the gdb_regset[] and gdb_regsize[] arrays and update
gdb_read_regs() to cope with the result.  This makes the addition of
arm64 support a bit cleaner.

No functional change intended.

Reviewed by: corvink, jhb
MFC after: 1 week
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D43481

4 months agobhyve: Avoid underflows when handling remote commands
Mark Johnston [Tue, 23 Jan 2024 16:40:40 +0000 (11:40 -0500)]
bhyve: Avoid underflows when handling remote commands

Reviewed by: corvink, jhb
MFC after: 1 week
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D43480

4 months agosysctl.8: fix format typo
Igor Ostapenko [Tue, 23 Jan 2024 14:34:59 +0000 (16:34 +0200)]
sysctl.8: fix format typo

Signed-off-by: Igor Ostapenko <pm@igoro.pro>
4 months agoacpiconf: remove trailing space in "Mesurement Accuracy" output
Christos Margiolis [Tue, 23 Jan 2024 15:39:40 +0000 (17:39 +0200)]
acpiconf: remove trailing space in "Mesurement Accuracy" output

No functional change intended.

MFC after: 1 week
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D43561

4 months agostand: Add 1440p to the list of known resolutions.
Dag-Erling Smørgrav [Tue, 23 Jan 2024 14:20:27 +0000 (15:20 +0100)]
stand: Add 1440p to the list of known resolutions.

MFC after: 1 week
Reviewed by: manu, kevans, imp
Differential Revision: https://reviews.freebsd.org/D43391

4 months agoarm/mpic: remove empty pic_init_secondary() hook
Elliott Mitchell [Tue, 23 Jan 2024 02:52:37 +0000 (02:52 +0000)]
arm/mpic: remove empty pic_init_secondary() hook

The default hook does nothing, so having an empty handler is pointless.
Simple cleanup.

Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D40475

4 months agobsdlabel: limit to 8 partitions
Ed Maste [Tue, 23 Jan 2024 02:05:58 +0000 (21:05 -0500)]
bsdlabel: limit to 8 partitions

bsdlabel is intended to support up to 20 partitions, but the disklabel
struct has a d_partitions array with only BSD_NPARTS_MIN (8) entries.
Previously, an attempt to operate on a bsdlabel with more than eight
partitions resulted in a buffer overflow.

As a stopgap limit bsdlabel to 8 partitions until this is fixed
properly.

PR: 276517

4 months agoZTS: Apply zfs_bclone_enabled to bclone tests
Brian Behlendorf [Tue, 23 Jan 2024 00:14:08 +0000 (16:14 -0800)]
ZTS: Apply zfs_bclone_enabled to bclone tests

If block cloning is disabled by default then enable it when running
the bclone tests.  Follow up to #15529.

Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #15796

4 months agodwc: Fix two typos in a source code comment
Gordon Bergling [Mon, 22 Jan 2024 21:03:29 +0000 (22:03 +0100)]
dwc: Fix two typos in a source code comment

- s/recevied/received/
- s/descriptr/descriptor/

MFC after: 3 days

4 months agometa2deps.py: Fix a typo in a source code comment
Gordon Bergling [Mon, 22 Jan 2024 21:00:36 +0000 (22:00 +0100)]
meta2deps.py: Fix a typo in a source code comment

- s/follwing/following/

MFC after: 3 days

4 months agovirtio(4): Fix a typo in a source code comment
Gordon Bergling [Mon, 22 Jan 2024 20:59:06 +0000 (21:59 +0100)]
virtio(4): Fix a typo in a source code comment

- s/recevied/received/

MFC after: 3 days

4 months agousb: Fix a typo in a source code comment
Gordon Bergling [Mon, 22 Jan 2024 20:57:06 +0000 (21:57 +0100)]
usb: Fix a typo in a source code comment

- s/recevied/received/

MFC after: 3 days

4 months agovmd(4): Fix typos in source code comments
Gordon Bergling [Mon, 22 Jan 2024 20:55:33 +0000 (21:55 +0100)]
vmd(4): Fix typos in source code comments

- s/harwdare/hardware/

MFC after: 3 days

4 months agonet80211: Fix a typo in a source code comment
Gordon Bergling [Mon, 22 Jan 2024 20:54:36 +0000 (21:54 +0100)]
net80211: Fix a typo in a source code comment

- s/recevied/received/

MFC after: 3 days

4 months agortsock: Fix a typo in a source code comment
Gordon Bergling [Mon, 22 Jan 2024 20:53:21 +0000 (21:53 +0100)]
rtsock: Fix a typo in a source code comment

- s/adddress/address/

MFC after: 3 days

4 months agonetlink(4): Fix a typo in a source code comment
Gordon Bergling [Mon, 22 Jan 2024 20:52:16 +0000 (21:52 +0100)]
netlink(4): Fix a typo in a source code comment

- s/permament/permanent/

MFC after: 3 days

4 months agonetpfil: Fix a typo in a source code comment
Gordon Bergling [Mon, 22 Jan 2024 20:50:57 +0000 (21:50 +0100)]
netpfil: Fix a typo in a source code comment

- s/strucutre/structure/

MFC after: 3 days

4 months agotcp_fastopen: Fix a typo in a source code comment
Gordon Bergling [Mon, 22 Jan 2024 20:49:47 +0000 (21:49 +0100)]
tcp_fastopen: Fix a typo in a source code comment

- s/posession/possession/

MFC after: 3 days