HardenedBSD/src 6529e8asys/dev/cxgbe/common t4_hw.c, sys/netinet in_var.h

Merge remote-tracking branch 'internal/freebsd/current/main' into hardened/current/master
DeltaFile
+2-500usr.sbin/ifmcstat/ifmcstat.c
+219-0tests/sys/netinet/raw.c
+1-44usr.sbin/ifmcstat/ifmcstat.8
+15-4sys/dev/cxgbe/common/t4_hw.c
+1-4sys/netinet/in_var.h
+3-0tests/sys/netinet/Makefile
+241-5526 files

HardenedBSD/src 3701625share/mk bsd.sys.mk, stand defs.mk Makefile.inc

Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/cross-dso-cfi
DeltaFile
+2-0share/mk/bsd.sys.mk
+2-0stand/defs.mk
+1-0stand/Makefile.inc
+5-03 files

HardenedBSD/src cfd8f4arelease/tools ec2.conf, sys/kern subr_intr.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+13-1sys/kern/subr_intr.c
+4-1release/tools/ec2.conf
+17-22 files

HardenedBSD/src 718049eshare/mk bsd.sys.mk, stand defs.mk Makefile.inc

HBSD: Disable retpolines for the bootloader

We've been building the bootloader with retpolines. With the latest
OpenZFS import, the addition of retpolines now causes the loader to be
too large in size, preventing a successful build.

Applying retpolines to the bootloader doesn't make sense, anyways. An
attacker able to exploit speculative execution vulnerabilities at the
bootloader stage has already won the game.

Signed-off-by:  Shawn Webb <shawn.webb at hardenedbsd.org>
Fixes:          8a62a2a5659d1839d8799b4274c04469d7f17c78
DeltaFile
+2-0stand/defs.mk
+2-0share/mk/bsd.sys.mk
+1-0stand/Makefile.inc
+5-03 files

HardenedBSD/src 8f41ee9sys/dev/cxgbe/common t4_hw.c

cxgbe(4): decode the T7 MC interrupt correctly

The layout for the main INT_CAUSE is a bit different for T7.

MFC after:      1 week
Sponsored by:   Chelsio Communications
DeltaFile
+10-0sys/dev/cxgbe/common/t4_hw.c
+10-01 files

HardenedBSD/src 6317122sys/dev/cxgbe/common t4_hw.c

cxgbe(4): adjustments to the output of the slow interrupt handler

- Display an appropriate alert character instead of a question mark for
  unknown bits.
- Display all fatal bits for a register and not just the ones that are
  currently set.

MFC after:      1 week
Sponsored by:   Chelsio Communications
DeltaFile
+5-4sys/dev/cxgbe/common/t4_hw.c
+5-41 files

HardenedBSD/src ad0e698usr.sbin/ifmcstat ifmcstat.c ifmcstat.8

ifmcstat: remove libkvm(3) code

It has been broken and disabled for over 10 years.  Remove mentions of the
kvm(3) from the manual page.
DeltaFile
+2-500usr.sbin/ifmcstat/ifmcstat.c
+1-44usr.sbin/ifmcstat/ifmcstat.8
+3-5442 files

HardenedBSD/src 85cf26csys/netinet in_var.h

in_var.h: fixup comments that mention use by ifmcstat(8)
DeltaFile
+1-4sys/netinet/in_var.h
+1-41 files

HardenedBSD/src 660a79erelease/tools ec2.conf

EC2: Don't use unicode in boot loader

The boot loader menu is disabled by default in EC2, but if it is ever
turned on, the default (unicode) output breaks EC2's web interface to
the serial console.

Set loader_menu_frame="ascii" instead.

MFC after:      3 days
Sponsored by:   Amazon

(cherry picked from commit 277830b4d3ae9999c80bf915b5491850e91c6516)
(cherry picked from commit 251907ca480eff7f6177f52959b71a6cfce45579)
DeltaFile
+4-1release/tools/ec2.conf
+4-11 files

HardenedBSD/src b109809sys/kern subr_intr.c

intrng: Shuffle unhandled interrupts too

When interrupt vectors are first allocated, they get assigned to
CPU #0; at SI_SUB_SMP / SI_ORDER_SECOND (aka once we have multiple
CPUs), the intr_irq_shuffle SYSINIT clears their CPU sets with the
effect of forcing them to be assigned to new CPUs later.

In case where interrupt vectors were allocated *but not yet bound*
this code did not run, with the effect that those interrupts would
remain pinned to CPU #0 forever.  This affected the ena(4) driver,
which allocates interrupts for I/O when the device is attached but
doesn't set them up until the interface is brought up much later in
the boot process (and, crucially, long after intr_irq_shuffle runs).

Adjust intr_irq_shuffle to clear the CPU set for an interrupt source
even if it currently has no handlers, so that it will be properly
assigned to a CPU when it is used later.

Reviewed by:    andrew, mhorne

    [5 lines not shown]
DeltaFile
+13-1sys/kern/subr_intr.c
+13-11 files

HardenedBSD/src cc66722tests/sys/netinet raw.c

tests/netinet/raw: fix ssize_t printf(3) format

Fixes:  c1481c9f4a425db7295332be87f837bfb7d127df
DeltaFile
+1-1tests/sys/netinet/raw.c
+1-11 files

HardenedBSD/src 24dcc64sys/fs/tarfs tarfs_io.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+2-2sys/fs/tarfs/tarfs_io.c
+2-21 files

HardenedBSD/src c1481c9tests/sys/netinet raw.c Makefile

tests/netinet: provide test for raw_ip.c:rip_input()

The test creates differently bound SOCK_RAW sockets and sends different
probe packets.  There is expected results matrix that every probe is
checked against.
DeltaFile
+219-0tests/sys/netinet/raw.c
+3-0tests/sys/netinet/Makefile
+222-02 files

HardenedBSD/src 317c242sys/fs/tarfs tarfs_io.c

tarfs: swap deprecated ZSTD_resetDStream() with ZSTD_DCtx_reset()

ZSTD_resetDStream() is deprecated since 1.5.4: https://github.com/facebook/zstd/commit/5d8cfa6b96a6442ab1251f9de3b47a0eb12561a0

This change is needed to MFV zstd 1.5.7.

Approved by:    emaste (mentor)
MFC after:      3 days
Differential Revision:  https://reviews.freebsd.org/D55835

(cherry picked from commit 922d73540d2d9897e5e8160c445cefa13581564e)
DeltaFile
+2-2sys/fs/tarfs/tarfs_io.c
+2-21 files

HardenedBSD/src 3e52f9asbin/pfctl pfctl.8 pfctl.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+1-1sbin/pfctl/pfctl.8
+1-1sbin/pfctl/pfctl.c
+2-22 files

HardenedBSD/src 9031b83sbin/pfctl pfctl.8 pfctl.c

pfctl: consistency

% pfctl -F ethernet
Ethernet rules cleared

% pfctl -s ethernet
pfctl: Unknown show modifier 'ethernet'

pfctl accepts 'ethernet' (or any prefix of it) in the -F flag but
accepts only 'ether' (or any prefix of it) in the -s flag, which seems
inconsistent.  This change brings the two to parity while remaining
backwards compatible.

Reviewed by:    kp
MFC after:      2 weeks
Signed-off-by: Seth Hoffert <seth.hoffert at gmail.com>
(cherry picked from commit 36acf1bd32ed5749af4a9f735aeea1a3434fe42f)
DeltaFile
+1-1sbin/pfctl/pfctl.8
+1-1sbin/pfctl/pfctl.c
+2-22 files

HardenedBSD/src 1863ff8sys/compat/lindebugfs lindebugfs.c, sys/compat/linuxkpi/common/include/linux fs.h seq_file.h

Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/cross-dso-cfi
DeltaFile
+54-27sys/compat/lindebugfs/lindebugfs.c
+23-12sys/compat/linuxkpi/common/src/linux_simple_attr.c
+15-17sys/compat/linuxkpi/common/include/linux/fs.h
+1-1sys/compat/linuxkpi/common/src/linux_seq_file.c
+1-1sys/compat/linuxkpi/common/include/linux/seq_file.h
+94-585 files

HardenedBSD/src d7380bfsys/compat/lindebugfs lindebugfs.c, sys/compat/linuxkpi/common/include/linux fs.h seq_file.h

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+54-27sys/compat/lindebugfs/lindebugfs.c
+23-12sys/compat/linuxkpi/common/src/linux_simple_attr.c
+15-17sys/compat/linuxkpi/common/include/linux/fs.h
+1-1sys/compat/linuxkpi/common/include/linux/seq_file.h
+1-1sys/compat/linuxkpi/common/src/linux_seq_file.c
+94-585 files

HardenedBSD/src 2353fa1sys/compat/linuxkpi/common/include/linux fs.h

LinuxKPI: Fix simple_read_from_buffer for zero-size and off-the-end reads

I noticed that the buf_size < 0 check can never be true (it's a
size_t) and decided to check for this condition by an alternate
expression, and I also noticed that a read_size of 0 would incorrectly
return -EFAULT.  Instead, return success for both of these cases as
reading beyond the EOF of a normal file also returns EOF, not EINVAL.

Reviewed by:    bz
Sponsored by:   AFRL, DARPA
Differential Revision:  https://reviews.freebsd.org/D55845
DeltaFile
+2-2sys/compat/linuxkpi/common/include/linux/fs.h
+2-21 files

HardenedBSD/src 2cf1514sys/compat/lindebugfs lindebugfs.c, sys/compat/linuxkpi/common/include/linux fs.h seq_file.h

lindebugfs: Pass user buffer pointers to the read/write file operations

The Linux file_operations API expects the read and write operations
to take a single user buffer pointer (along with the length and the
file offset as an in/out parameter).

However, the debugfs_fill function was violating this part of the
contract as it was passing down kernel pointers instead.  An earlier
commit (5668c22a13c6befa9b8486387d38457c40ce7af4) hacked around this
by modifying simple_read_from_buffer() to treat its user pointer
argument as a kernel pointer instead.  However, other commits keep
tripping over this same API mismatch
(e.g. 78e25e65bf381303c8bdac9a713ab7b26a854b8c passes a kernel pointer
to copy_from_user in fops_str_write).

Instead, change debugfs_fill to use the "raw" pseudofs mode where the
uio is passed down to directly to the fill callback rather than an
sbuf.  debufs_fill now iterates over the iovec in the uio similar to
the implementation of uiomove invoking the read or write operation on

    [24 lines not shown]
DeltaFile
+54-27sys/compat/lindebugfs/lindebugfs.c
+23-12sys/compat/linuxkpi/common/src/linux_simple_attr.c
+13-15sys/compat/linuxkpi/common/include/linux/fs.h
+1-1sys/compat/linuxkpi/common/include/linux/seq_file.h
+1-1sys/compat/linuxkpi/common/src/linux_seq_file.c
+92-565 files

HardenedBSD/src 0ccd224sys/arm64/arm64 trap.c, sys/compat/linuxkpi/common/src linux_simple_attr.c linux_seq_file.c

Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/cross-dso-cfi
DeltaFile
+9-21sys/arm64/arm64/trap.c
+2-11sys/compat/linuxkpi/common/src/linux_simple_attr.c
+3-9sys/compat/linuxkpi/common/src/linux_seq_file.c
+14-413 files

HardenedBSD/src e720e42sys/arm64/arm64 trap.c, sys/compat/linuxkpi/common/src linux_simple_attr.c linux_seq_file.c

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+9-21sys/arm64/arm64/trap.c
+2-11sys/compat/linuxkpi/common/src/linux_simple_attr.c
+3-9sys/compat/linuxkpi/common/src/linux_seq_file.c
+14-413 files

HardenedBSD/src 6aeddadusr.sbin/virtual_oss/virtual_oss main.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+3-21usr.sbin/virtual_oss/virtual_oss/main.c
+3-211 files

HardenedBSD/src 14e9744sys/arm64/arm64 trap.c

arm64: Have a common call to userret

Rather than each exception calling userret use a common copy. As
syscallret already calls userret we need to skip it in that case.

Reviewed by:    kib
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55250
DeltaFile
+9-21sys/arm64/arm64/trap.c
+9-211 files

HardenedBSD/src 58d74d7sys/compat/linuxkpi/common/src linux_simple_attr.c linux_seq_file.c

LinuxKPI: Use simple_read_from_buffer in simple_attr_read and seq_read

Reviewed by:    bz
Sponsored by:   AFRL, DARPA
Differential Revision:  https://reviews.freebsd.org/D55879
DeltaFile
+2-11sys/compat/linuxkpi/common/src/linux_simple_attr.c
+2-9sys/compat/linuxkpi/common/src/linux_seq_file.c
+4-202 files

HardenedBSD/src c181c8fsys/compat/linuxkpi/common/src linux_seq_file.c

LinuxKPI: Clear the sbuf at the start of each call to seq_read

Each invocation of seq_read invokes the seq_file.show callback which
writes into the sbuf.  Then it invokes sbuf_finish before copying the
data into the caller's buffer.  Without this, a second call to
seq_read on the same file would try to append data to a finished sbuf.

Reviewed by:    bz
Sponsored by:   AFRL, DARPA
DeltaFile
+1-0sys/compat/linuxkpi/common/src/linux_seq_file.c
+1-01 files

HardenedBSD/src 80d813dsys/dev/virtio virtqueue.c, sys/net if_bridge.c

Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/cross-dso-cfi
DeltaFile
+2-2sys/net/if_bridge.c
+2-1sys/netinet6/nd6.c
+1-1sys/dev/virtio/virtqueue.c
+5-43 files

HardenedBSD/src 572a8aesys/dev/virtio virtqueue.c, sys/net if_bridge.c

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+2-2sys/net/if_bridge.c
+2-1sys/netinet6/nd6.c
+1-1sys/dev/virtio/virtqueue.c
+5-43 files

HardenedBSD/src edc9c3eusr.sbin/virtual_oss/virtual_oss main.c

virtual_oss: Combine -d, -l and -L option getopt code

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D55671

(cherry picked from commit a2b601343bf9261c4ada51e4d4c30c5b9320bb2b)
DeltaFile
+3-21usr.sbin/virtual_oss/virtual_oss/main.c
+3-211 files

HardenedBSD/src 1d13d93sys/dev/virtio virtqueue.c

virtio: Ensure power-of-two alignment for indirect queue

Some platforms enforce power-of-two alignment for bus_dma tags. Rounding up
the natural size may result in over-alignment, but should be safe.

PR:             293770
Reviewed by:    andrew
Fixes:          c499ad6f997c ("virtio: Use bus_dma for ring and indirect buffer allocations")
Sponsored by:   Arm Ltd
Differential Revision:  https://reviews.freebsd.org/D55843
DeltaFile
+1-1sys/dev/virtio/virtqueue.c
+1-11 files