FreeBSD/src 2b7c140share/mk src.sys.obj.mk

src.sys.obj.mk: Export OBJTOP

If we had to set OBJTOP we want to .export it (if .MAKE.LEVEL > 0)
for the benefit of things like x!= ${.MAKE} -r ... and similar.

Without OBJTOP, the default MAKEOBJDIR setting will result in
attempting to use an objdir like /lib or /bin etc in some cases.

This patch is based on D30990
with the addition of the check for level > 0.

Reviewed by: jrtc27
Differential Revision:        <https://reviews.freebsd.org/D30990>
DeltaFile
+3-0share/mk/src.sys.obj.mk
+3-01 files

FreeBSD/src c867ba7sys/modules Makefile

bnxt: Do not compile on 32-bit platforms

The new bnxt_re driver doesn't compile on any of them (it uses writeq()
from the LinuxKPI, which isn't implemented there), and had already been
disconnected from the build on i386.

Reported by:    Jenkins
Fixes:  acd884dec99a ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
DeltaFile
+2-2sys/modules/Makefile
+2-21 files

FreeBSD/src bbe4233sys/dev/bnxt/bnxt_re qplib_fp.c qplib_sp.c

bnxt_re: Explicitly cast pointer-to-integer conversions

Reported by:    Jenkins
Fixes:  acd884dec99a ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
DeltaFile
+1-1sys/dev/bnxt/bnxt_re/qplib_fp.c
+1-1sys/dev/bnxt/bnxt_re/qplib_sp.c
+2-22 files

FreeBSD/src 8164d51lib/libc/tests/ssp Makefile

libc/tests: Fix installation without MK_TOOLCHAIN

There is some exotic conditional logic here to avoid building a
particular test if a certain UBSAN library isn't present in the
toolchain sysroot.  This causes build failures for me when doing an
"installworld WITHOUT_TOOLCHAIN=", which I do frequently during tests.

I believe the problem is that SYSROOT is unset during installworld, so
the build sees the host's copy of libclang_rt.ubsan_standalone.a and
then tries to install a binary that wasn't built during buildworld.  Try
to make the check a bit less fragile.

Reviewed by:    dim
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D45035
DeltaFile
+1-1lib/libc/tests/ssp/Makefile
+1-11 files

FreeBSD/src bf56e8bsys/modules/bnxt Makefile

bnxt: Add a module makefile to fix the build

Fixes:  35b53f8c989f ("bnxt_en: Add PFC, ETS & App TLVs protocols support")
DeltaFile
+4-0sys/modules/bnxt/Makefile
+4-01 files

FreeBSD/src faeff3bsys/modules/bnxt/bnxt_en Makefile, sys/modules/bnxt/bnxt_re Makefile

bnxt_{en/re}: Update bnxt_en and bnxt_re Makefile

Reviewed by:            imp
Approved by:            imp
Differential revision:  https://reviews.freebsd.org/D45202
DeltaFile
+1-1sys/modules/bnxt/bnxt_re/Makefile
+1-1sys/modules/bnxt/bnxt_en/Makefile
+2-22 files

FreeBSD/src 862af86sys/dev/bnxt/bnxt_en if_bnxt.c

bnxt_en: Driver version update to 230.0.133.0

Reviewed by:            imp
Approved by:            imp
Differential revision:  https://reviews.freebsd.org/D45010
DeltaFile
+1-1sys/dev/bnxt/bnxt_en/if_bnxt.c
+1-11 files

FreeBSD/src 3d8bbe0sys/dev/bnxt/bnxt_en hsi_struct_def.h bnxt.h

bnxt_en: Firmware header version update to 1.10.3.42

This file is automatically generated from the firmware code to
export the driver interfaces.

Reviewed by:            imp
Approved by:            imp
Differential revision:  https://reviews.freebsd.org/D45009
DeltaFile
+16,909-3,780sys/dev/bnxt/bnxt_en/hsi_struct_def.h
+1-1sys/dev/bnxt/bnxt_en/bnxt.h
+16,910-3,7812 files

FreeBSD/src acd884dsys/dev/bnxt/bnxt_re ib_verbs.c main.c

RDMA/bnxt_re: Add bnxt_re RoCE driver

This patch introduces the RoCE driver for the
Broadcom NetXtreme-E 10/25/50/100/200G RoCE HCAs.

The RoCE driver is a two part driver that relies
on the bnxt_en NIC driver to operate. The changes
needed in the bnxt_en driver is included through
another patch "L2-RoCE driver communication interface"
in this set.

Presently, There is no user space support, Hence
recommendation to use the krping kernel module for
testing. User space support will be incorporated in
subsequent patch submissions.

Reviewed by:            imp
Approved by:            imp
Differential revision:  https://reviews.freebsd.org/D45011
DeltaFile
+5,498-0sys/dev/bnxt/bnxt_re/ib_verbs.c
+4,467-0sys/dev/bnxt/bnxt_re/main.c
+3,544-0sys/dev/bnxt/bnxt_re/qplib_fp.c
+1,338-0sys/dev/bnxt/bnxt_re/qplib_rcfw.c
+1,234-0sys/dev/bnxt/bnxt_re/qplib_sp.c
+1,226-0sys/dev/bnxt/bnxt_re/qplib_res.c
+17,307-011 files not shown
+22,790-017 files

FreeBSD/src 032899bsys/dev/bnxt/bnxt_en bnxt_hwrm.c bnxt_sysctl.c

bnxt_en: Added support for priority queues extended stats

Below priority queues extended stats are exposed to sysctl:

tx_bytes_pri{0-7}
rx_bytes_pri{0-7}
tx_packets_pri{0-7}
rx_packets_pri{0-7}

Reviewed by:            imp
Approved by:            imp
Differential revision:  https://reviews.freebsd.org/D45007
DeltaFile
+155-6sys/dev/bnxt/bnxt_en/bnxt_hwrm.c
+98-0sys/dev/bnxt/bnxt_en/bnxt_sysctl.c
+23-0sys/dev/bnxt/bnxt_en/bnxt.h
+1-1sys/dev/bnxt/bnxt_en/bnxt_hwrm.h
+277-74 files

FreeBSD/src c996597sys/dev/bnxt/bnxt_en if_bnxt.c bnxt.h

bnxt_en: Firmware error recovery support

Implement firmware error recovery support for Thor adapters.
This entails enabling the capability for the firmware to initiate
error recovery. Specifically, the firmware will send the reset notify
asynchronous event to notify the driver of an error and impending reset.
Subsequently, the driver will queue a task to execute the following steps.

1. Deactivate the allocated resources.
2. Await completion of the firmware's recovery process.
3. Configure the resources and reactivate the network interface.

Reviewed by:            imp
Approved by:            imp
Differential revision:  https://reviews.freebsd.org/D45008
DeltaFile
+817-17sys/dev/bnxt/bnxt_en/if_bnxt.c
+178-1sys/dev/bnxt/bnxt_en/bnxt.h
+86-59sys/dev/bnxt/bnxt_en/bnxt_hwrm.c
+50-0sys/dev/bnxt/bnxt_en/bnxt_sysctl.c
+5-3sys/dev/bnxt/bnxt_en/bnxt_hwrm.h
+4-2sys/dev/bnxt/bnxt_en/bnxt_ulp.c
+1,140-826 files

FreeBSD/src 050d28esys/dev/bnxt/bnxt_en if_bnxt.c bnxt_ulp.c

bnxt_en: L2-RoCE driver communication interface

- Added Aux bus support for RoCE.
- Implemented the ulp ops that are required by RoCE driver.
- Restructure context memory data structures
- DBR pacing support

Reviewed by:            imp
Approved by:            imp
Differential revision:  https://reviews.freebsd.org/D45006
DeltaFile
+428-123sys/dev/bnxt/bnxt_en/if_bnxt.c
+524-0sys/dev/bnxt/bnxt_en/bnxt_ulp.c
+326-158sys/dev/bnxt/bnxt_en/bnxt_hwrm.c
+201-51sys/dev/bnxt/bnxt_en/bnxt.h
+194-0sys/dev/bnxt/bnxt_en/bnxt_auxbus_compat.c
+161-0sys/dev/bnxt/bnxt_en/bnxt_ulp.h
+1,834-3325 files not shown
+1,926-33811 files

FreeBSD/src 4354163etc Makefile

Don't package /var/db/locate.database

... or install an empty file.

The locate database is a mutable working file, and unsuitable to be
managed by pkg(8).  locate(1) copes gracefully with the absence of
this file.  Running /etc/periodic/weekly/310.locate will create the
locate database with the correct ownership and permissions.

Having the locate.database file as part of the FreeBSD-runtime package
means it gets zeroed if ever that package gets updated, which is
excessive, given that updating packages will typically only change a
relatively small number of the _filenames_ on the system -- unlike the
file contents.  Plus it always causes it to flag as modified when
verifying checksums, but /var/db/locate.database is expected to be
modified by the user.

MFC after:      1 week
Reviewed by:    manu
Differential Revision:  https://reviews.freebsd.org/D45384
DeltaFile
+0-4etc/Makefile
+0-41 files

FreeBSD/src 35b53f8sys/dev/bnxt hsi_struct_def.h if_bnxt.c, sys/dev/bnxt/bnxt_en hsi_struct_def.h if_bnxt.c

bnxt_en: Add PFC, ETS & App TLVs protocols support

Created new directory "bnxt_en" in /dev/bnxt and /modules/bnxt
and moved source files and Makefile into respective directory.

ETS support:

   - Added new files bnxt_dcb.c & bnxt_dcb.h
   - Added sysctl node 'dcb' and created handlers 'ets' and
     'dcbx_cap'
   - Add logic to validate user input and configure ETS in
     the firmware
   - Updated makefile to include bnxt_dcb.c & bnxt_dcb.h

PFC support:

   - Created sysctl handlers 'pfc' under node 'dcb'
   - Added logic to validate user input and configure PFC in
     the firmware.

    [18 lines not shown]
DeltaFile
+78,381-0sys/dev/bnxt/bnxt_en/hsi_struct_def.h
+0-78,381sys/dev/bnxt/hsi_struct_def.h
+3,669-0sys/dev/bnxt/bnxt_en/if_bnxt.c
+0-3,635sys/dev/bnxt/if_bnxt.c
+2,748-0sys/dev/bnxt/bnxt_en/bnxt_hwrm.c
+0-2,602sys/dev/bnxt/bnxt_hwrm.c
+84,798-84,61822 files not shown
+90,760-88,98628 files

FreeBSD/src 1c45a62sys/dev/qlnx/qlnxe ecore_mcp.c qlnx_os.c

qlnxe: Fix multiple locking issues

Multiple issues are reported with WITNESS and code inspection of the
locking and lock initialization.

PR:             278084
MFC after:      1 week
DeltaFile
+24-24sys/dev/qlnx/qlnxe/ecore_mcp.c
+5-4sys/dev/qlnx/qlnxe/qlnx_os.c
+4-4sys/dev/qlnx/qlnxe/bcm_osal.h
+3-3sys/dev/qlnx/qlnxe/ecore_mcp.h
+2-2sys/dev/qlnx/qlnxe/qlnx_os.h
+1-1sys/dev/qlnx/qlnxe/qlnx_def.h
+39-381 files not shown
+40-387 files

FreeBSD/src fb78e20sys/dev/qlnx/qlnxe qlnx_os.c bcm_osal.h

Revert "qlnxe: Fix multiple locking issues"

This commit is missing a file, revert so I can do it correctly,
atomically.

This reverts commit 29684d08fa3010c2035b4eb1ce0b39091ad07723.
DeltaFile
+4-5sys/dev/qlnx/qlnxe/qlnx_os.c
+4-4sys/dev/qlnx/qlnxe/bcm_osal.h
+3-3sys/dev/qlnx/qlnxe/ecore_mcp.h
+2-2sys/dev/qlnx/qlnxe/qlnx_os.h
+1-1sys/dev/qlnx/qlnxe/qlnx_def.h
+0-1sys/dev/qlnx/qlnxe/ecore.h
+14-166 files

FreeBSD/src 29684d0sys/dev/qlnx/qlnxe qlnx_os.c bcm_osal.h

qlnxe: Fix multiple locking issues

Multiple issues are reported with WITNESS and code inspection of the
locking and lock initialization.

PR:             278084
MFC after:      1 week
DeltaFile
+5-4sys/dev/qlnx/qlnxe/qlnx_os.c
+4-4sys/dev/qlnx/qlnxe/bcm_osal.h
+3-3sys/dev/qlnx/qlnxe/ecore_mcp.h
+2-2sys/dev/qlnx/qlnxe/qlnx_os.h
+1-1sys/dev/qlnx/qlnxe/qlnx_def.h
+1-0sys/dev/qlnx/qlnxe/ecore.h
+16-146 files

FreeBSD/src e3ec564sys/dev/qlnx/qlnxe qlnx_os.c

qlnxe: Fix promiscuous and allmulti settings

PR:             278087
MFC after:      1 week
DeltaFile
+22-11sys/dev/qlnx/qlnxe/qlnx_os.c
+22-111 files

FreeBSD/src 9370f49sys/dev/qlnx/qlnxe qlnx_rdma.c

qlnx: qlnxe: Fix kernel address leakage

In function qlnx_rdma_deregister_if,
the address of object rdma_if will be printed out.
rdma_if is the address of a global variable qlnxr_drv,
which is passed from dev/qlnx/qlnxr/qlnxr_os.c
A kernel address leakage happens.
Fix this by removing the printf statement.

PR:             238646
MFC after:      1 week
DeltaFile
+0-3sys/dev/qlnx/qlnxe/qlnx_rdma.c
+0-31 files

FreeBSD/src ae38977sys/dev/qlxge qls_os.c

qlxge: replace device_printf with QL_DPRINT2

QL_DPRINT2 checks the debug level first before printing.
Replace device_printf with QL_DPRINT2 to check debug level
first before printing out the kernel pointers.

PR:             238656
MFC after:      1 week
DeltaFile
+12-12sys/dev/qlxge/qls_os.c
+12-121 files

FreeBSD/src 3d6c7eesys/dev/qlxgbe ql_os.c

qlxgbe: fix debug prints in ql_os.c

QL_DPRINT2 checks the debug level first and then prints.
Replace device_printf with QL_DPRINT2 to check debug level
first before printing out the kernel pointers.

PR:             238655
MFC after:      1 week
DeltaFile
+5-5sys/dev/qlxgbe/ql_os.c
+5-51 files

FreeBSD/src a3e6edacontrib/llvm-project/llvm/lib/Target/X86 X86.td

Merge commit d0be944aa511 from llvm-project (by Simon Pilgrim):

  [X86] Add slow div64 tuning flag to Nehalem target (#91129)

  This appears to have been missed because later cpus don't inherit from Nehalem tuning much.

  Noticed while cleaning up for #90985

Merge commit 8b400de79eff from llvm-project (by Simon Pilgrim):

  [X86] Enable TuningSlowDivide64 on Barcelona/Bobcat/Bulldozer/Ryzen Families (#91277)

  Despite most AMD cpus having a lower latency for i64 divisions that converge early, we are still better off testing for values representable as i32 and performing a i32 division if possible.

  All AMD cpus appear to have been missed when we added the "idivq-to-divl" attribute - this patch now matches Intel cpu behaviour (and the x86-64/v2/3/4 levels).

  Unfortunately the difference in code scheduling means I've had to stop using the update_llc_test_checks script and just use old-fashioned CHECK-DAG checks for divl/divq pairs.

  Fixes #90985

    [9 lines not shown]
DeltaFile
+6-0contrib/llvm-project/llvm/lib/Target/X86/X86.td
+6-01 files

FreeBSD/src 70be2f0contrib/llvm-project/clang/lib/Interpreter IncrementalParser.cpp, contrib/llvm-project/clang/lib/Sema SemaTemplate.cpp

Merge llvm-project release/18.x llvmorg-18.1.6-0-g1118c2e05e67

This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/18.x llvmorg-18.1.6-0-g1118c2e05e67.

PR:             276104
MFC after:      3 days

(cherry picked from commit 3a0793336edfc21cb6d4c8c5c5d7f1665f3e6c5a)
DeltaFile
+39-26contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+18-39contrib/llvm-project/llvm/lib/Target/PowerPC/PPCMergeStringPool.cpp
+21-21contrib/llvm-project/llvm/lib/Target/X86/X86InstrAVX512.td
+28-4contrib/llvm-project/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
+19-6contrib/llvm-project/clang/lib/Sema/SemaTemplate.cpp
+19-5contrib/llvm-project/clang/lib/Interpreter/IncrementalParser.cpp
+144-10140 files not shown
+316-16946 files

FreeBSD/src ec38746contrib/llvm-project/llvm/lib/Target/X86 X86.td

Merge commit d0be944aa511 from llvm-project (by Simon Pilgrim):

  [X86] Add slow div64 tuning flag to Nehalem target (#91129)

  This appears to have been missed because later cpus don't inherit from Nehalem tuning much.

  Noticed while cleaning up for #90985

Merge commit 8b400de79eff from llvm-project (by Simon Pilgrim):

  [X86] Enable TuningSlowDivide64 on Barcelona/Bobcat/Bulldozer/Ryzen Families (#91277)

  Despite most AMD cpus having a lower latency for i64 divisions that converge early, we are still better off testing for values representable as i32 and performing a i32 division if possible.

  All AMD cpus appear to have been missed when we added the "idivq-to-divl" attribute - this patch now matches Intel cpu behaviour (and the x86-64/v2/3/4 levels).

  Unfortunately the difference in code scheduling means I've had to stop using the update_llc_test_checks script and just use old-fashioned CHECK-DAG checks for divl/divq pairs.

  Fixes #90985

    [9 lines not shown]
DeltaFile
+6-0contrib/llvm-project/llvm/lib/Target/X86/X86.td
+6-01 files

FreeBSD/src f1e3279contrib/llvm-project/clang/lib/Interpreter IncrementalParser.cpp, contrib/llvm-project/clang/lib/Sema SemaTemplate.cpp

Merge llvm-project release/18.x llvmorg-18.1.6-0-g1118c2e05e67

This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/18.x llvmorg-18.1.6-0-g1118c2e05e67.

PR:             276104
MFC after:      3 days

(cherry picked from commit 3a0793336edfc21cb6d4c8c5c5d7f1665f3e6c5a)
DeltaFile
+39-26contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+18-39contrib/llvm-project/llvm/lib/Target/PowerPC/PPCMergeStringPool.cpp
+21-21contrib/llvm-project/llvm/lib/Target/X86/X86InstrAVX512.td
+28-4contrib/llvm-project/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
+19-6contrib/llvm-project/clang/lib/Sema/SemaTemplate.cpp
+19-5contrib/llvm-project/clang/lib/Interpreter/IncrementalParser.cpp
+144-10140 files not shown
+316-16946 files

FreeBSD/src a58b4eesys/dev/qlxgbe ql_ioctl.c

qlxgbe: Remove pointer printing in ql_ioctl.c
PR:             238653
MFC after:      1 week
DeltaFile
+2-2sys/dev/qlxgbe/ql_ioctl.c
+2-21 files

FreeBSD/src 2439ae9sys/dev/mlx4/mlx4_en mlx4_en_tx.c, sys/dev/mlx5/mlx5_en mlx5_en_tx.c

mlx4, mlx5: Eliminate redundent NULL check for packet filter

mlx4 and mlx5 are Ethernet devices and ether_ifattach() does an
unconditional bpfattach(). From commit 16d878cc99ef [1] and on, we
should not check ifp->if_bpf to tell us whether or not we have any bpf
peers that might be interested in receiving packets. And since commit
2b9600b4497b [2], ifp->if_bpf can not be NULL even after the network
interface has been detached.

No functional change intended.

1. 16d878cc99ef Fix the following bpf(4) race condition which can result in a panic
2. 2b9600b4497b Add dead_bpf_if structure, that should be used as fake bpf_if during ifnet detach

Reviewed by:    kp, kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D45196
DeltaFile
+1-1sys/dev/mlx4/mlx4_en/mlx4_en_tx.c
+1-1sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
+2-22 files

FreeBSD/src a29cc9esys/compat/linux linux_sysctl.c

linux(4): Add const qualifier to the value parameter of function handle_string()

The content that `value` point to is not going to be altered by function
handle_string().

MFC after:      1 week

(cherry picked from commit 68c890b4433d3655c7df91cc43f89f4d6a8b35e4)
(cherry picked from commit 1b3f88bc809526cc7cd22c88b4fdaadf1a2e5e75)
DeltaFile
+1-1sys/compat/linux/linux_sysctl.c
+1-11 files

FreeBSD/src f183abdsys/kern kern_xxx.c

compat_freebsd4: Add const qualifier to the local variable s inside function freebsd4_uname()

This local variable s is for iterating characters of global variable
`version`. The content of `version` is not going to be altered by
function freebsd4_uname().

MFC after:      1 week

(cherry picked from commit 92f2a4c820fea9efcb6ee6a7029495c8152958c1)
(cherry picked from commit 5fd1902b0c768fa43d3d7eebf7efd0957d5e144f)
DeltaFile
+2-1sys/kern/kern_xxx.c
+2-11 files

FreeBSD/src 5fd1902sys/kern kern_xxx.c

compat_freebsd4: Add const qualifier to the local variable s inside function freebsd4_uname()

This local variable s is for iterating characters of global variable
`version`. The content of `version` is not going to be altered by
function freebsd4_uname().

MFC after:      1 week

(cherry picked from commit 92f2a4c820fea9efcb6ee6a7029495c8152958c1)
DeltaFile
+2-1sys/kern/kern_xxx.c
+2-11 files