FreeBSD/src 83d13d8sys/kern kern_rwlock.c kern_mutex.c

locks: run the extra NULL check only with INVARIANTS

This reverts commit 73da0265c29c79641dab3e6b98452bd5afca01fb.
This reverts commit 87ee63bac69dc49291f55590b8baa57cad6c7d85.

Discussed with:         mjg
DeltaFile
+4-12sys/kern/kern_rwlock.c
+1-3sys/kern/kern_mutex.c
+5-152 files

FreeBSD/src cd46e98sys/kern kern_prot.c, sys/sys ucred.h

cred: fix struct credbatch to use long for refcount

This structure collects count from multiple cred structures.  Of course it
can't use a smaller type.

PR:                     283747
Reviewed by:            olce, mjg, markj
Differential Revision:  https://reviews.freebsd.org/D49562
Fixes:                  37337709d3334f32650ba3a7c529fa013ed5e1f2
DeltaFile
+2-2sys/sys/ucred.h
+1-1sys/kern/kern_prot.c
+3-32 files

FreeBSD/src d2859cdusr.sbin/uefisign uefisign.8

uefisign.8: fix indent

The current version has every item description beginning on a new line;
not the intention.
DeltaFile
+1-1usr.sbin/uefisign/uefisign.8
+1-11 files

FreeBSD/src 0e33c2esys/dev/pci pci.c

pci: Only re-route IRQs based on firmware on x86

There is a (very historical) call to pci_assign_interrupt for the
purpose of routing IRQs which may have been set up wrong by x86 BIOS
or firmware.  On non-x86 systems, this is unnecessary; and on INTRNG
systems it results in a (synthetic) IRQ leak and ultimately a kernel
panic after many hotplug/unplug cycles.

Suggested by:   jhb
Reviewed by:    jhb
MFC after:      2 weeks
Sponsored by:   Amazon
Differential Revision:  https://reviews.freebsd.org/D49560
DeltaFile
+2-0sys/dev/pci/pci.c
+2-01 files

FreeBSD/src 4cb527bsys/kern subr_intr.c

Correctly track index of first free irq map entry

Any time an IRQ map entry was removed, irq_map_first_free_idx was being
set to the index of the removed entry; this caused problems when
entries were removed in random order since irq_map_first_free_idx was
set to a larger value than the index of the first free map entry, and
in 9beb195fd9fd ("Continue searching for an irq map from the start")
the IRQ map allocation code was adjusted to use irq_map_first_free_idx
as a starting point but ultimately scan the entire map if necessary,
including values less than irq_map_first_free_idx.

Remove that workaround and instead make irq_map_first_free_idx do what
the name suggests -- tracking the index of the first free map entry --
by only setting to the index of a newly-freed entry if that index is
lower than the existing irq_map_first_free_idx value.

Reviewed by:    imp, mhorne
Sponsored by:   Amazon
Differential Revision:  https://reviews.freebsd.org/D49543
DeltaFile
+2-9sys/kern/subr_intr.c
+2-91 files

FreeBSD/src f339897sys/compat/linuxkpi/common/include/linux mmzone.h

linuxkpi: Define `MAX_PAGE_ORDER` and `NR_PAGE_ORDERS`

The TTM component of the DRM drivers started to use the latter in Linux
6.8.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49387
DeltaFile
+3-0sys/compat/linuxkpi/common/include/linux/mmzone.h
+3-01 files

FreeBSD/src 0b02cfbsys/compat/linuxkpi/common/include/linux pwm.h

linuxkpi: Add `pwm_apply_might_sleep()`

The i915 DRM driver started to use it in Linux 6.8.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49386
DeltaFile
+6-0sys/compat/linuxkpi/common/include/linux/pwm.h
+6-01 files

FreeBSD/src 5df8159tests/sys/kern coredump_phnum_test.sh

tests: xfail readelf phdr count test w/LLVM binutils

LLVM readelf does not (yet) support phdr counts that overflow 16 bits.
Temporarily xfail this test until fixed; see upstream issue 132216 for
more details https://github.com/llvm/llvm-project/issues/132216.

PR:             285547
Reported by:    markj
Reviewed by:    dim, markj
Sponsored by:   The FreeBSD Foundation
Fixes: 1cae7121c667 ("Enable LLVM_BINUTILS by default")
Differential Revision: https://reviews.freebsd.org/D49561
DeltaFile
+5-0tests/sys/kern/coredump_phnum_test.sh
+5-01 files

FreeBSD/src 674701esys/netpfil/pf pf.c

pf: Remove some state pointer indirection

Several subroutines take a pointer to a pointer to a pf state, but never
modify the input pointer.  As in commit 9f9cf83f114a, let's remove the
indirection, making the code easier to read.  No functional change
intended.

Reviewed by:    kp, glebius
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D49519
DeltaFile
+103-103sys/netpfil/pf/pf.c
+103-1031 files

FreeBSD/src 27f70efsys/net pfvar.h, sys/netpfil/pf pf.c

pf: Use a macro to get the hash row in pf_find_state_byid()

This seems a bit preferable to open-coding it.  No functional change
intended.

Reviewed by:    kp, glebius
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D49518
DeltaFile
+2-1sys/net/pfvar.h
+1-1sys/netpfil/pf/pf.c
+3-22 files

FreeBSD/src 3cdf03dshare/man/man5 intro.5

intro.5: Crossreference ascii(7)

Since the beginning, Unix has included an ASCII chart. Over the last
half a century to this day, the most common format for lexographical
organization in files is according to ASCII. Consistency is maintainable
and for that reason, crossreference ascii(7) promenently in the
introduction to the File Formats Manual. Additionally, this demonstrates
the often softer style of bullet lists in the manual tradition.

PR:             248562
MFC after:      3 days
Reviewed by:    mhorne
Approved by:    mhorne (mentor)
Pull Request:   https://github.com/freebsd/freebsd-src/pull/1534

(cherry picked from commit a6175f28da7018ba9f824f48fe6db732bd9cb501)
DeltaFile
+4-3share/man/man5/intro.5
+4-31 files

FreeBSD/src 0d35e63share/man/man5 intro.5

intro.5: More verbose introductory sentence

Explain a little about everything is a file,
matching the style of earlier intro pages.

PR:             248562
MFC after:      3 days
Approved by:    mhorne (mentor)
Reviewed by:    imp, mhorne, Lexi Winter <lexi at le-fay.org>
Pull Request:   https://github.com/freebsd/freebsd-src/pull/1534

(cherry picked from commit 37508388d066826d0a36b5ec646c95a9ffb00d28)
DeltaFile
+4-1share/man/man5/intro.5
+4-11 files

FreeBSD/src bb28ea4share/man/man5 intro.5

intro.5: Import description table from OpenBSD

Looking around at how everyone else is doing it, this list seems nearly
perfect to me and we should just import it from them. I have added "and
streams" because we have some explanations of those in this section too.

PR:             248562
MFC after:      3 days
Obtained from:  OpenBSD
Approved by:    mhorne (mentor)
Reviewed by:    imp, mhorne, Lexi Winter <lexi at le-fay.org>
Pull Request:   https://github.com/freebsd/freebsd-src/pull/1534

(cherry picked from commit 26ec376536622e8fec8f40847aa9b2d1121d585d)
DeltaFile
+10-1share/man/man5/intro.5
+10-11 files

FreeBSD/src 342fa74share/man/man5 intro.5

intro.5: Add local to files, minor maintenence

New users are sometimes confused about the difference between /etc/ and
/usr/local/etc. Explain this in the manual as we did in intro(1). Link
hier(7) which now lists base system configuration files in /etc/. Add a
section number to HISTORY for clarity.

PR:             248562
MFC after:      3 days
Approved by:    mhorne (mentor)
Reviewed by:    imp, mhorne, Lexi Winter <lexi at le-fay.org>
Pull Request:   https://github.com/freebsd/freebsd-src/pull/1534

(cherry picked from commit 8d65152cbfc8861f6920846dea6f540c673ab7b6)
DeltaFile
+13-7share/man/man5/intro.5
+13-71 files

FreeBSD/src ae15f8csys/ufs/ffs ffs_subr.c ffs_vfsops.c

Get consistent updates for UFS superblocks.
Formatting and style cleanups.

Differential Revision: https://reviews.freebsd.org/D49276
Sponsored-by: Netflix

(cherry picked from commit c2cd605e8c8a15e545dfd3e50aef2f660d460b30)
(cherry picked from commit 16649530b7be02a61a32b34d56e6e937734cd247)
DeltaFile
+70-42sys/ufs/ffs/ffs_subr.c
+16-26sys/ufs/ffs/ffs_vfsops.c
+86-682 files

FreeBSD/src 7a49072sys/powerpc/powerpc trap.c

powerpc/trap: Change prediction of NOFAULTING in trap_pfault()

This was probably intended to match the amd64 check, but that tests
NOFAULTING against non-zero, while this checks against 0.  We're most
likely to end up in this function when faulting is allowed, so
predict_true is the better option.
DeltaFile
+1-1sys/powerpc/powerpc/trap.c
+1-11 files

FreeBSD/src 1580f8dsys/dev/ixgbe ixgbe_mbx.c

ixgbe: fix mailbox ack handling

Check if CTS bit is set in the mailbox message before waiting for ACK.
Otherwise ACK will never be received causing the function to timeout. Add
a note for ixgbe_write_mbx that it should be called while holding a lock.

Fixes: 6d243d2 ("net/ixgbe/base: introduce new mailbox API")
Cc: stable at dpdk.org

Signed-off-by: Norbert Ciosek <norbertx.ciosek at intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>

Obtained from:  DPDK (1f119e4)
MFC after:      1 week
DeltaFile
+12-2sys/dev/ixgbe/ixgbe_mbx.c
+12-21 files

FreeBSD/src d803854lib/libc/net getaddrinfo.c, lib/libc/tests/net/getaddrinfo getaddrinfo.c

libc/getaddrinfo(2): return EAI_AGAIN on nameserver timeout

A nameserver timeout is a soft failure, future attempts may succeed.
Returning EAI_AGAIN is crucial for API users to tell a soft name
resolution failure from negative resolution result.

Before the change we would return EAI_ADDRFAMILY, which I believe, is a
regression from 144361386696, and before that revision we used to return
EAI_NONAME in most of the cases.

Reviewed by:            kib
Differential Revision:  https://reviews.freebsd.org/D49411
DeltaFile
+43-15lib/libc/net/getaddrinfo.c
+24-29lib/libc/tests/net/getaddrinfo/getaddrinfo.c
+67-442 files

FreeBSD/src 0b773a9lib/libc/tests/net/getaddrinfo no_host_v4v6.exp basics_v4v6.exp

libc/tests: enable getaddrinfo(1) tests from NetBSD

Enable running of contrib/netbsd-tests/lib/libc/net/getaddrinfo without
modifications to the test program itself.  However, create our own version
of expected results files.  They are produced from the NetBSD files, with
the following list of changes:

o AF_INET6 value is different, hence: s/family 24/family 28/.
o SCTP result (socktype 5 protocol 132) needs to be added to many queries
  results.
o NetBSD libc sorts multiple results first by protocol, then by address
  family.  FreeBSD first sorts on address family, then on protocol.  Some
  results need to be reordered.
o Error strings need to be fixed:
  s/hostname nor servname provided, or not known/Name does not resolve/
  s/ai_family not supported/Address family not recognized/
  s/servname not supported for ai_socktype/\
  Service was not recognized for socket type/.


    [2 lines not shown]
DeltaFile
+68-0lib/libc/tests/net/getaddrinfo/no_host_v4v6.exp
+50-0lib/libc/tests/net/getaddrinfo/basics_v4v6.exp
+44-0lib/libc/tests/net/getaddrinfo/no_host_v4.exp
+42-0lib/libc/tests/net/getaddrinfo/basics_v4.exp
+20-0lib/libc/tests/net/getaddrinfo/no_serv_v4v6.exp
+17-0lib/libc/tests/net/getaddrinfo/no_serv_v4.exp
+241-08 files not shown
+294-414 files

FreeBSD/src 5313457lib/libc/tests/net/getaddrinfo getaddrinfo.c Makefile

libc/tests: add getaddrinfo test

A test suite for getaddrinfo(3) written in C.  Unlike NetBSD test, this
one will be mostly focused on what the API should return when something
isn't good with your DNS.  Test emulates bad DNS servers in resolv.conf
intercepting fopen(2) and emulates downed network intercepting send(2).

Initial version covers three main scenarios: all good, server(s) timed
out, network down.  For each scenario we test hostname with trailing dot
and without, since libc resolver uses quite different code paths,
sometimes even yielding with different error codes.  All current error
codes in the test are what our libc returns right now, meaning the test
documents what we have, not what there should be.

Reviewed by:            kib
Differential Revision:  https://reviews.freebsd.org/D49410
DeltaFile
+267-0lib/libc/tests/net/getaddrinfo/getaddrinfo.c
+1-0lib/libc/tests/net/getaddrinfo/Makefile
+268-02 files

FreeBSD/src 5fa093bsbin/mount_nfs mount_nfs.c

mount_nfs: make temporary DNS failure non-fatal with background mode

Typical problem with network mounts is remote equipment not being
available when our host boots up after a power failure.  Even if you
properly configure boot order of all local services and wait for link
coming up on your NIC, you still may boot faster than some intermediate
switch on the network or the DNS server itself.  Let's refer to this as a
"server room boot race".  For NFS mounts with hostname in hosts(5) the
race is addressed by a retry loop on NFS mount timeout.  However, a DNS
resolution timeout is treated differently to NFS mount timeout.  We fail
on the former and keep retrying on the latter.

With feedback received on current@, I see that the problem is so old, that
people got used to it and see it as a desired behavior rather than a
problem.  And for those who is affected by the problem, they suggest
hosts(5) as a solution.  Note that using hosts(5) isn't scalable, and
using bare IP addresses is neither scalable, nor compatible with
Kerberized mounts.


    [7 lines not shown]
DeltaFile
+34-25sbin/mount_nfs/mount_nfs.c
+34-251 files

FreeBSD/src d8482e1tools/tools/ath/athpoke athpoke.c

athpoke: Use a format string with err()

Don't do err(1, ptr); that's a very old security risk turned warning.

Differential Revision:  https://reviews.freebsd.org/D49546
Reviewed by:    thj
DeltaFile
+3-3tools/tools/ath/athpoke/athpoke.c
+3-31 files

FreeBSD/src 3bae830tools/tools/ath/common ctrl.c

ath: fix athtools common code to correctly init state

Check req->s instead of s to know if the state needs to be
cleaned up first.

This error is from a refactor I did years ago.  Oops!

Differential Revision:  https://reviews.freebsd.org/D49545
Reviewed by:    thj
DeltaFile
+1-1tools/tools/ath/common/ctrl.c
+1-11 files

FreeBSD/src 2eab1f6sys/net80211 ieee80211_output.c

net80211: document the 802.11 specification for ieee80211_getcapinfo()

Add a reference to the 802.11 specification for the management frame
capability info field.

Differential Revision:  https://reviews.freebsd.org/D49513
Reviewed by:    thj
DeltaFile
+6-0sys/net80211/ieee80211_output.c
+6-01 files

FreeBSD/src 8b0acd8sys/dev/usb/wlan if_mtw.c

mtw: fix compilation with IEEE80211_SUPPORT_SUPERG enabled

It looks like this was missed during the driver development and
porting.

Differential Revision:  https://reviews.freebsd.org/D49512
Reviewed by:    thj
DeltaFile
+6-3sys/dev/usb/wlan/if_mtw.c
+6-31 files

FreeBSD/src 09f991frelease Makefile.azure

release/azure: Update instruction of publishing to Azure Marketplace

Using Compute Gallery as the source is the preferred method now.

Reviewed by:    brooks, emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D49528
DeltaFile
+6-14release/Makefile.azure
+6-141 files

FreeBSD/src 50296dcshare/man/man7 hier.7

hier.7: Storage partitions are not filesystems

I recommended the incorrect text to the submitter.

MFC after:              3 days
Fixes:                  f47cbb29e1c2 (Add /dev/gpt)
Reported by:            Mark Millard <marklmi at yahoo.com>
Reviewed by:            imp, mhorne
Approved by:            mhorne (mentor)
Differential Revision:  https://reviews.freebsd.org/D49523
DeltaFile
+1-1share/man/man7/hier.7
+1-11 files

FreeBSD/src 187d954usr.bin/top top.1 top.c

top: Sync usage and synopsis

Switching between io and cpu sorting uses a great example in the usage.
[-m io | cpu]. Use that everywhere.

MFC after:              3 days
Reviewed by:            mhorne
Approved by:            mhorne (mentor)
Differential Revision:  https://reviews.freebsd.org/D49515
DeltaFile
+2-2usr.bin/top/top.1
+1-1usr.bin/top/top.c
+3-32 files

FreeBSD/src 75a320ebin/ps ps.1

ps.1: Use ISO/IEC byte units

The ps(1) utility uses 1024 byte units, not 1000 byte units.

git grep KiB | wc -l
        535
git grep KBytes | wc -l
        39

Fixes:                  20bdda14fa5c (Consistent usage of Kbyte unit)
MFC after:              3 days
Reviewed by:            jsm, imp, mhorne
Approved by:            mhorne (mentor)
Differential Revision:  https://reviews.freebsd.org/D49522
DeltaFile
+7-7bin/ps/ps.1
+7-71 files

FreeBSD/src a1759dcsys/arm64/arm64 gicv3_its.c

arm64: Fix off-by-one in its_init_cpu_lpi

The low bits of GICR_PROPBASER are defined as
  The number of bits of LPI INTID supported, minus one, by the LPI
  Configuration table starting at Physical_Address.
but flsl(1 << n) returns n + 1; use ilog2_long instead.

PR:     285677
Reported by:    Julien Grall
Reviewed by:    andrew
Sponsored by:   Amazon
Differential Revision:  https://reviews.freebsd.org/D49542
DeltaFile
+1-1sys/arm64/arm64/gicv3_its.c
+1-11 files