FreeBSD/src 475a56asbin/devd growfs_postboot.conf

growfs_postboot: Invoke via service(8)

Use service(8) rather than invoking /etc/rc.d/growfs_postboot directly.

Requested by:   bapt
Reviewed by:    bapt
MFC after:      2 weeks
Fixes:          5a31987d4c39 ("rc+devd: Add growfs_postboot")
Differential Revision:  https://reviews.freebsd.org/D59145
DeltaFile
+1-1sbin/devd/growfs_postboot.conf
+1-11 files

FreeBSD/src 6cb7e36usr.sbin/ppp mp.c

ppp: Fix a buffer overflow in the endpoint discriminator set command

Reported by:    Reo Shiseki
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D59054
DeltaFile
+8-3usr.sbin/ppp/mp.c
+8-31 files

FreeBSD/src 4b337dfsys/arm64/include hypervisor.h

arm64: Fix CNTHCTL_EL1PCTEN field definitions

Fix the non-VHE register field definition of CNTHCTL_EL1PCTEN to use the
correct non-VHE shift.

Signed-off-by: Kajetan Puchalski <kajetan.puchalski at arm.com>
Sponsored by:   Arm Ltd
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2378
DeltaFile
+2-2sys/arm64/include/hypervisor.h
+2-21 files

FreeBSD/src 1deae41sys/arm64/include armreg.h

arm64: Add AA64PFR2 GCIE register definitions

Sponsored by:   Arm Ltd
DeltaFile
+6-0sys/arm64/include/armreg.h
+6-01 files

FreeBSD/src d1bd7d3sys/arm64/arm64 locore.S

arm64: Stop trashing the padding after boot_el

When building struct arm64_bootparams to pass to initarm we store the
boot_el field as a 64-bit value, however it is defined as an int which
is 32-bits.

Switch to store using the 'w' register as this will store a correctly
sized value.

Previously this would trash the trailing padding, so is only a
correctness issue.

Reviewed by:    emaste
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D58988
DeltaFile
+1-1sys/arm64/arm64/locore.S
+1-11 files

FreeBSD/src 2f5ed51sys/arm64/arm64 gicv5.c gicv5reg.h

arm64: Add the GICv5 virtualisation register and struct definitions

Co-developed-by: Andrew Turner <andrew at FreeBSD.org>
Sponsored by:   Arm Ltd
DeltaFile
+363-2sys/arm64/arm64/gicv5reg.h
+2-2sys/arm64/arm64/gicv5.c
+365-42 files

FreeBSD/src 4aeed6einclude setjmp.h

libc: Add <setjmp.h> C23 feature test macro

Define the __STDC_VERSION_SETJMP_H__ feature test macro as the
header fully conforms to C23.

Reviewed by:    fuz
Approved by:    fuz (mentor)
MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D59135
DeltaFile
+2-0include/setjmp.h
+2-01 files

FreeBSD/src fc9d02cinclude time.h

libc: Add <time.h> C23 feature test macro

Define the __STDC_VERSION_TIME_H__ feature test macro as the
header fully conforms to C23.

Reviewed by:    fuz
Approved by:    fuz (mentor)
MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D59134
DeltaFile
+2-3include/time.h
+2-31 files

FreeBSD/src 2712d13include stdbool.h

libc: Remove incorrectly defined __STDC_VERSION_STDBOOL_H__

C23 does not define __STDC_VERSION_STDBOOL_H__ for <stdbool.h>.
Feature test macros of this form only apply to headers where the
standard explicitly mandates one.

Reviewed by:    fuz
Approved by:    fuz (mentor)
MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D59136
DeltaFile
+0-4include/stdbool.h
+0-41 files

FreeBSD/src 47f89e7contrib/libarchive/libarchive/test test_write_format_pax_align.c

libarchive: rename macro ALIGN in test_write_format_pax_align.c

This is a direct commit to stable/14
DeltaFile
+5-5contrib/libarchive/libarchive/test/test_write_format_pax_align.c
+5-51 files

FreeBSD/src cfacf64sys/netpfil/pf pf_table.c

pf: fix crash on low memory

pfr_create_kentry() can return NULL. Don't dereference the pointer it
returns until after we've checked it.

Fixes:          08ed87a4a276 ("pf: convert DIOCRSETADDRS to netlink")
See also:       https://redmine.netgate.com/issues/23622
Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+1-1sys/netpfil/pf/pf_table.c
+1-11 files

FreeBSD/src 620c4c2contrib/libarchive/libarchive/test test_read_format_zip_winzip_aes256_large_bzip2.zip.uu test_read_format_zip_winzip_aes256_large_lzma.zip.uu

libarchive: merge from vendor branch

libarchive 3.8.9

ChangeLog:
https://github.com/libarchive/libarchive/compare/v3.8.7...v3.8.9

Obtained from:  libarchive
Vendor commit:  27cbc7827172698143e440801fc0ba39ccb4f1f5
MFC after:      2 weeks

(cherry picked from commit 185becb1e1bd2657c156f78aeb52edac05ba5fb5)
DeltaFile
+23,307-0contrib/libarchive/libarchive/test/test_read_format_rar_newsub_rr_over_1m.rar.uu
+2,919-0contrib/libarchive/libarchive/test/test_read_format_cpio_symlink_trailer.cpio.uu
+2,053-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_zstd.zip.uu
+1,898-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_xz.zip.uu
+1,893-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_lzma.zip.uu
+1,616-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_bzip2.zip.uu
+33,686-0438 files not shown
+58,681-9,875444 files

FreeBSD/src e7aa5a5sys/dev/e1000 if_em.c e1000_osdep.h

e1000: Serialize 82579 CSR writes with the Management Engine

The 82579 PCIm2PCI arbiter can acknowledge a host MAC CSR write while
the Management Engine is accessing another CSR.  The host write can be
lost; subsequent target accesses may no longer be claimed by the MAC and
can hang the system.

For 82579 controllers with valid management firmware, wait for the ME
CSR access indication before every MAC CSR write.  Keep the wait bounded
and use DELAY because writes occur in interrupt and datapath contexts.
Verify every transmit and receive tail write.  If a tail does not hold
the requested value, disable its datapath direction and request a full
iflib reset.

Keep the ordinary register-write path as a direct MMIO write behind a
predicted per-device gate.  Contain the wait and tail recovery in the
82579 slow path rather than adding tail-specific accessors and state to
the rest of the e1000 family.


    [11 lines not shown]
DeltaFile
+60-0sys/dev/e1000/e1000_osdep.c
+13-7sys/dev/e1000/e1000_osdep.h
+9-0sys/dev/e1000/if_em.c
+82-73 files

FreeBSD/src 750cc05contrib/libarchive/libarchive/test test_read_format_zip_winzip_aes256_large_bzip2.zip.uu test_read_format_zip_winzip_aes256_large_lzma.zip.uu

libarchive: merge from vendor branch

libarchive 3.8.9

ChangeLog:
https://github.com/libarchive/libarchive/compare/v3.8.7...v3.8.9

Obtained from:  libarchive
Vendor commit:  27cbc7827172698143e440801fc0ba39ccb4f1f5
MFC after:      2 weeks

(cherry picked from commit 185becb1e1bd2657c156f78aeb52edac05ba5fb5)
DeltaFile
+23,307-0contrib/libarchive/libarchive/test/test_read_format_rar_newsub_rr_over_1m.rar.uu
+2,919-0contrib/libarchive/libarchive/test/test_read_format_cpio_symlink_trailer.cpio.uu
+2,053-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_zstd.zip.uu
+1,898-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_xz.zip.uu
+1,893-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_lzma.zip.uu
+1,616-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_bzip2.zip.uu
+33,686-0438 files not shown
+58,681-9,875444 files

FreeBSD/src 08b751fsys/net ieee8023ad_lacp.c if_media.h

if_media.h: Add 400GBase-SR8 and 400GBase-CR8

Reviewed by:    bz (network)
MFC after:      1 week
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D53387

(cherry picked from commit 2d608a4cebbd5b9e648f86e52f115c02fac52d88)
DeltaFile
+6-0sys/net/if_media.h
+2-0sys/net/ieee8023ad_lacp.c
+8-02 files

FreeBSD/src 09ec7b7sys/net if_media.h

Fix typo in recently added 400G media

Reported by:    glebius
Fixes:  2d608a4cebbd if_media.h: Add 400GBase-SR8 and 400GBase-CR8
MFC after:      1 week
Sponsored by:   Chelsio Communications

(cherry picked from commit 4d2d65cad49765a084819195d81a7c0043f1938c)
DeltaFile
+1-1sys/net/if_media.h
+1-11 files

FreeBSD/src b258fa0sys/dev/ixgbe ixgbe_phy.c

ixgbe: Recognize production X550 PHY IDs

According to Linux 5f1c3589b0f0, the X550 PHY classifier still matches
an alpha silicon ID, while the shared definitions contain the two
production IDs.  This can leave production hardware on the generic
probing path and issue unnecessary PHY queries.

(cherry picked from commit 392f0af6685a06e89fecdc38cc2e910d2b84d738)
DeltaFile
+2-0sys/dev/ixgbe/ixgbe_phy.c
+2-01 files

FreeBSD/src d794d8dsys/net ieee8023ad_lacp.c

lacp: Simplify lacp_compose_key()

lacp uses interface speed to separate lacp members into different
aggregation groups.  It wants to use the lower 4 bits of the key
to represent the speed.   This change fixes a few bugs around that:

1) Actually use the baud rate reported by the interface as the speed
  (and fall back to use the baudrate associated with the media if
   the interface somehow doesn't support if_baudrate)

2) Compressess the baud rates down to the 4 bits reserved for them.
   Using things like FM_400G_FR8 does not fit in 4 bits (its value
   is 0x1811) . In fact, interfaces faster than 1Gb/s don't fit in
   4 bits using the old scheme

3) Emits a warning on the console once per boot if it encounters a
   NIC with an unsupported speed to make it slightly more obvious
   why LACP might not behave as expected.


    [10 lines not shown]
DeltaFile
+40-133sys/net/ieee8023ad_lacp.c
+40-1331 files

FreeBSD/src d5bd650share/man/man4 ix.4, sys/dev/ixgbe ixgbe_type.h if_ix.c

ixgbe: Expose EEE LPI event counters

X550-family devices provide clear-on-read counters for transmit and
receive Low Power Idle events.  Accumulate each register once in the
normal statistics poll and expose the monotonic totals below the eee
sysctl node.  Document the counters together with the existing EEE
control.

Obtained from:  Intel ix 3.4.39

(cherry picked from commit ff86fd4f36618dacf1628180034c312c70294276)
DeltaFile
+18-0sys/dev/ixgbe/if_ix.c
+7-1share/man/man4/ix.4
+2-0sys/dev/ixgbe/ixgbe_type.h
+27-13 files

FreeBSD/src 134c709sys/dev/ixgbe ixgbe_x550.c ixgbe_type.h

ixgbe: Add 10GBase-BX BiDi SFP+ module support

10G-BX optics use paired wavelengths to carry 10 Gb/s Ethernet over a
single strand of single-mode fiber.  Their 10G compliance byte is
empty, so identify them from the SFF-8472 nominal signaling rate and
single-mode reach fields.

When an EEPROM also advertises 1G BASE-BX10, give the complete 10G
bitrate and reach signature precedence.  Otherwise retain FreeBSD's
permissive 1G-BX identification rather than requiring a nominal
1.3 GBd rate.

Relnotes:       yes

(cherry picked from commit f9ce33b0d8ef233063bd6c27bdba2580f97d9094)
DeltaFile
+56-5sys/dev/ixgbe/ixgbe_phy.c
+10-0sys/dev/ixgbe/if_ix.c
+7-0sys/dev/ixgbe/ixgbe_82599.c
+3-0sys/dev/ixgbe/ixgbe_type.h
+3-0sys/dev/ixgbe/ixgbe_phy.h
+2-0sys/dev/ixgbe/ixgbe_x550.c
+81-56 files

FreeBSD/src 91c34d5sys/net ieee8023ad_lacp.c if_media.h

net/if_media.h: Add 800GBase-X and 200Gbit/s per lane support

Reviewed by:    kib
Tested by:      Wafa Hamzah <wafah at nvidia.com>
MFC after:      1 week
Sponsored by:   Nvidia networking
Differential revision: https://reviews.freebsd.org/D57083

(cherry picked from commit 51f313dbc7a28a7bd2013c205261f29f115eb0a7)
DeltaFile
+42-0sys/net/if_media.h
+3-0sys/net/ieee8023ad_lacp.c
+45-02 files

FreeBSD/src 111dbcdsys/dev/ixgbe if_ixv.c

ixv: Report multigigabit link speeds

The VF link-status path can receive 2.5 and 5 Gb/s speed bits from
X550-family PFs, but media reporting has no cases for them.  The
bootverbose message also assumes every non-10-Gb/s link is 1 Gb/s.

Expose the corresponding ifmedia subtypes and derive the diagnostic
speed through the shared link-speed conversion helper.

(cherry picked from commit a884921abbaf52ff862a32ff6806bf071974faa6)
DeltaFile
+14-4sys/dev/ixgbe/if_ixv.c
+14-41 files

FreeBSD/src 1b36879sys/dev/ixgbe if_ix.c

ixgbe: Preserve the full VF RSS domain in the shared RETA

The 82599 and X540 share the global RSS redirection table between the
PF and its VFs.  Programming that table from the PF queue count
prevents a VF from using queue indices absent from the PF layout.  A
one-queue PF consequently directs every flow for a two- or four-queue
VF to queue zero.

Program at least four queue indices while SR-IOV is active.  Each pool
PSRTYPE.RQPL field masks the shared table to the queue subset available
to that function, so the PF can continue using fewer queues.

(cherry picked from commit 8b668bc7e7c8b0a1bcb018360a4aafa445ff554f)
DeltaFile
+17-5sys/dev/ixgbe/if_ix.c
+17-51 files

FreeBSD/src 4bd47ddsys/net if_media.h

net: Add ifmedia support for 10GBase-BX BiDi

10GBase-BX uses paired wavelengths to carry both directions over a
single strand of single-mode fiber.  The optics must be paired so that
the transmit and receive wavelengths cross over.

MFC after:      2 weeks

(cherry picked from commit 4220b52453c9701922955dcc1c1e1554d6a9f3ae)
DeltaFile
+3-0sys/net/if_media.h
+3-01 files

FreeBSD/src bd07986sys/net if_media.h

if_media: Claim 10BASE-T1S and 10BASE-T1L constants

These are two single-pair Ethernet (SPE) variants that run at 10 Mbps.
10BASE-T1S has automotive origins and supports multiple nodes on up to
25m of cable.  10BASE-T1L is intended for building and industrial
automation and supports long-distance point to point links of over 1km.

Reviewed by:    kbowling
Differential Revision: https://reviews.freebsd.org/D56952

(cherry picked from commit a3036edd0292291a71fb74ba2bce355159ac6913)
DeltaFile
+6-0sys/net/if_media.h
+6-01 files

FreeBSD/src 1c6690asys/dev/ixgbe if_ix.c

ixgbe: Compare flow control against requested mode

The flow-control sysctl represents the configured policy, while
current_mode is the mode negotiated with the link partner.  Comparing a
new request with current_mode can needlessly reprogram an unchanged
policy or skip a requested policy change that happens to match the
current negotiation result.

Compare with requested_mode before deciding that no update is needed.

(cherry picked from commit c410551b9feadf9b65f920fd25714fcda8299a56)
DeltaFile
+1-1sys/dev/ixgbe/if_ix.c
+1-11 files

FreeBSD/src 3e8b8afshare/man/man4 ixl.4, sys/dev/ixl if_ixl.c ixl_pf.h

ixl: Track and recover MDD-blocked VFs

The hardware identifies each VF with TX and RX malicious-driver
status latches, but the driver combined all events into one counter
and reported only the last VF found.

Consume every PF and VF latch, keep per-direction VF counters, and
rate-limit per-VF diagnostics.  Keep the software block until a
successful VF or PF reset reconstructs its resources.

Match Linux i40e policy by leaving a detected VF blocked by default.
Add an opt-in hw.ixl.mdd_auto_reset_vf tunable that notifies and
resets the VF for installations that prefer availability.  DPDK
provides the register clear and per-VF attribution precedent; Linux
provides the recovery policy.

(cherry picked from commit 93f1065920d806400ace6b60b025faf91926bdaa)
DeltaFile
+64-68sys/dev/ixl/ixl_pf_main.c
+30-0sys/dev/ixl/ixl_pf_iov.c
+8-1sys/dev/ixl/ixl_pf.h
+7-1sys/dev/ixl/if_ixl.c
+6-0share/man/man4/ixl.4
+115-705 files

FreeBSD/src d06f0c8sys/dev/ixl ixl_pf_iflib.c if_ixl.c

ixl: Report PF initialization failures to iflib

ixl_if_init() returned early after AdminQ reconstruction, LAA, or
VSI initialization failures.  Since IFDI_INIT has no return value,
iflib then marked the interface RUNNING and enabled its interrupts
and timers despite the incomplete hardware state.

Use iflib_init_failed() on each incomplete path.  Also stop at the
first ring-enable error and tear down any partially enabled rings
before reporting failure.  This keeps the interface stopped and
makes a later initialization attempt start from a bounded state.

(cherry picked from commit f008b582c9f1e1a636e88a5f330ff3a167094440)
DeltaFile
+20-9sys/dev/ixl/if_ixl.c
+10-4sys/dev/ixl/ixl_pf_iflib.c
+30-132 files

FreeBSD/src c6c6d71sys/dev/ixgbe ixgbe_common.c

ixgbe: Validate EEPROM checksum section bounds

The generic checksum walker trusts NVM section pointers and lengths and
iterates with a 16-bit index.  A corrupt section that crosses the end of
the EEPROM can wrap the index and leave the driver in an effectively
unbounded read loop during attach.

Validate each non-empty section against the discovered EEPROM word size
before reading it, and use widened arithmetic for the inclusive end and
iterator.

(cherry picked from commit be3e1068ea8699fb719691453899ca20a601fe1d)
DeltaFile
+13-3sys/dev/ixgbe/ixgbe_common.c
+13-31 files

FreeBSD/src d7e1184sys/dev/ixgbe if_ix.c

ixgbe: Restore missed packet accounting

missed_rx and total_missed_rx are never populated.  As a result, the
GPRC erratum workaround does not remove missed packets and iqdrops
always remains zero.  The rx_missed_packets sysctl and input-error total
also expose only MPC bank zero.

Read and accumulate all eight MPC banks.  Use the interval total to
correct GPRC and the cumulative total for iqdrops, input errors, and the
aggregate sysctl.  This matches DPDK's coverage of the hardware banks.

(cherry picked from commit 660099c985e8bfc931b01398715441c90cf0d4db)
DeltaFile
+10-4sys/dev/ixgbe/if_ix.c
+10-41 files