snl: Remove duplicate rta_expires member in route parser
There is no user for `rta_expires` member and it's
duplicate of `rta_expire`.
Reviewed By: melifaro
Differential Revision: https://reviews.freebsd.org/D55445
freebsd-update: Error for -b basedir without UNAME_r set
freebsd-update sets the currently running release from UNAME -r, which
can be overridden via the --currently-running commandline option (or by
setting UNAME_r in the environment). This may be invalid if -b is used
to specify a basedir other than /, so error out if -b is specified
without setting the currently running version.
PR: 283229
Reviewed by: cperciva
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48016
(cherry picked from commit 097458ac665db732cc91a22279da4cc14f694da2)
asmc(4): pull 32-bit support for the driver
The asmc(4) driver should work for 32-bit Intel-based Macs, in theory, if
the model details were added to the detection list. That being said,
32-bit Intel Macs were only released and available to the general public
for 8 months [1], so the value in maintaining i386 support in the driver is
reduced due to limited hardware access.
Remove 32-bit support for the driver officially to make it clear its use is
not supported.
This should fix building `NOTES.i386` by proxy as well.
Relnotes: yes
MFC after: 2 weeks
Fixes: f224591746b ("Add ASMC_DEBUG make option")
Fixes: 8342d9f7b5f ("asmc(4): Stop building it on i386, as...")
Differential Revision: https://reviews.freebsd.org/D55544
vmimage.subr: skip -dbg sets for WITHOUT_DEBUG_FILES/WITHOUT_KERNEL_SYMBOLS
This matches non-pkgbase behavior as installworld/installkernel skip the
debug bits if these knobs are set.
MFC after: 1 week
Sponsored by: Chelsio Communications
Reviewed by: cperciva
Differential Revision: https://reviews.freebsd.org/D55572
gre: unbreak LINT-NOINET
- Move some of the braces under their respective conditionals to make the
statements more self-encapsulated and only define the `aliasreq` union
in the event either INET or INET6 is defined.
- Fix a copy-paste error: `in_gre_ioctl` should be `in6_gre_ioctl` in the
INET6 case.
Reported by: tinderbox
Fixes: e1e18cc12e68 ("if_gre: Add netlink support with tests")
Differential Revision: https://reviews.freebsd.org/D55546
libpcap: Fix dependency definitions for libpcap
Commit 35dd53a9e132 ("librdmacm/libibverbs: Statically bound libbnxtre.so.1 to rping")
causes a build failure, since src.libnames.mk declares a depencency on
libbnxtre.so, but the libpcap Makefile and prebuild lib dependencies
were not updated accordingly. Fix the declarations.
Fixes: 35dd53a9e132 ("librdmacm/libibverbs: Statically bound libbnxtre.so.1 to rping")
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54048
(cherry picked from commit 73e8fe62466a8ae5576473d9be4c6df9a6eedab0)
librdmacm/libibverbs: Add bnxtre RDMA provider to OFED build infrastructure
Extend the FreeBSD OFED build framework to include the Broadcom bnxtre RDMA
provider library.
This change:
-Registers libbnxtre in src.libnames.mk so it is built and installed as part
of the OFED libraries.
-Adds bnxtre to the OFED pcap dependency set when MK_OFED is enabled.
-Declares proper dependency mappings for bnxtre (ibverbs, pthread).
-Introduces LIBBNXTREDIR for consistent object directory handling.
-Updates libibverbs and librdmacm build rules to link against libbnxtre,
enabling Broadcom RoCE device support at runtime.
-libbnxtre library uses below constructor to register with the libibverbs,
static attribute((constructor)) void bnxt_re_register_driver(void)
These updates ensure that applications using libibverbs and librdmacm can
discover and use Broadcom bnxt RDMA devices on FreeBSD.
[6 lines not shown]
bnxt_re/libbnxtre: Add support for Variable WQE on BCM576xx controllers
Variable size WQE means that each send Work Queue Entry to
HW can use different WQE sizes as opposed to the static WQE
size on the current devices. Set variable WQE mode for BCM576xx
devices. Depth of the Queue will be a multiple of slot which
is 16 bytes. The number of slots should be a multiple of 256
as per the HW requirement.
Initialize the Software shadow queue to hold requests equal to
the number of slots.
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54525
MFC after: 3 days
(cherry picked from commit 823f158a01330484f83f69c31d695035c607f8ee)
bnxt_re: Add support to display board_id in ibv_devinfo output
Added support to display board_id in ibv_devinfo output.
ibv_devinfo util reads the board_id from below sysctl
attribute, so added this sysctl attribute.
sys.class.infiniband.bnxt_reX.board_id
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54524
MFC after: 3 days
(cherry picked from commit 3a9565c2a8e4f1b3da698bf6a8af5889dc4fefbd)
bnxt_re: Fix active_speed value when two ports are aggregated
Currently driver is not considering the active_lanes while
displaying the speed & width of port and hence it showing
invalid active_speed and active_width values in the ibv_devinfo
command output when two ports are aggregated at hardware level.
Fixed the driver to consider the active_lanes while determining
the active_speed & active_width values.
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54523
MFC after: 3 days
(cherry picked from commit b7d6334df61a559e98191f90fd5e611e0d077def)
bnxt_en/re: Use FW defined resource limit for RoCE
Check FW flags for status of Resource Limits. If bit
FUNC_QCAPS_RESP_FLAGS_EXT2_SW_MAX_RESOURCE_LIMITS_SUPPORTED
is set, that means FW set the resource limit for L2 and RoCE.
We'll then do the following:
L2 driver would allocate context memory based on what FW reported.
RoCE driver uses FW reported values without capping. These values
are the total FW reported value minus L2 and other components shares.
For example:
FW reported max_qps = 137217 in L2 query, this includes:
5120 for L2
1025 for QP1
131072 for RoCE
L2 will allocate backing store memory for the total.
In RoCE query, we'll get max_qp = 131072 and use it
[7 lines not shown]
bnxt_re/libbnxtre: Add RoCE support for BCM576xx controllers
Added RoCE support for BCM576xx controllers with below changes,
1. Update the BAR offsets for handling BCM576xx controllers.
Use the values populated by the L2 driver for getting the
Doorbell offsets.
2. Use msn index instead of tail to pull psn table entry.
3. Temporarily disable dbr pacing feature untill it is
fully implemented.
4. Add support for 400G speed.
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54521
MFC after: 3 days
(cherry picked from commit 92ba9b2fe58910b1d2cd6cd34b5ec093f0d9f700)
ngctl.8: fix incorrect synopsis
Tiny manpage bug I caused in D50241
I left a line in the manpage that shouldn't be there.
MFC after: 3 days
Fixes: 72d01e62b082 ("netgraph: teach ngctl to attach and run itself in a jail")
Reviewed by: des, markj
Differential Revision: https://reviews.freebsd.org/D55485
(cherry picked from commit 9ed56cd8d6929e3ee733e1e61d2e0c6b81122983)
ngctl: Fix getline loop
I misremembered when I wrote this code: getline() returns -1 on EOF, not
zero, so the loop condition and the error check are both incorrect
(though in practice getline() will never return 0).
MFC after: 3 days
Fixes: 3cbdcabf714d ("ngctl: Modernize code somewhat")
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D55487
(cherry picked from commit 6c4777c59325c2cfefcce0c466b3bf475404a550)
dpaa2: improve error messages and log requested cluster size
If m_getjcl() fails we want to know the size we requested in order to
have a chance to evaluate the problem better.
MFC after: 3 days
Reviewed by: tuexen
Differential Revision: https://reviews.freebsd.org/D55555
xen/acpi: implement hook to notify Xen about entering sleep state
This is required so that ACPI power-off (entering S5) works as expected, as
the ACPI PM1a and PM1b blocks might not be accessible by dom0 directly.
Additionally, Xen also needs to do cleanup before entering a sleep state,
so it needs to be notified about it.
With this patch FreeBSD dom0 now powers off the host correctly:
acpi0: Powering system off...
(XEN) [ 85.686598] arch/x86/hvm/emulate.c:415:d0v0 fixup p2m mapping for page fedc6 added
(XEN) [ 85.687606] arch/x86/hvm/emulate.c:415:d0v0 fixup p2m mapping for page fbc10 added
(XEN) [ 85.692357] Preparing system for ACPI S5 state.
(XEN) [ 85.692702] Disabling non-boot CPUs ...
(XEN) [ 85.694471] Broke affinity for IRQ9, new: {0-7}
[...]
(XEN) [ 85.903118] Entering ACPI S5 state.
Should be a non-functional change when not running as a Xen dom0.
[5 lines not shown]
divert: unbreak the LINT-NOIP build
Only expose `dcb` when either `INET` or `INET6` is defined.
Reported by: clang (`-Wunused`)
MFC after: 1 week
Fixes 5547a7bb39 ("divert: Use a better source identifier...")
Differential Revision: https://reviews.freebsd.org/D55548
loader.efi: try all ZFS pools found by efi_zfs_probe()
Remove global uint64_t pool_guid and instead iterate over all pools that
efizfs_get_zfsinfo_list() provides.
The global pool_guid used to mark that we have constructed a ZFS pool and
the pool label that was used for that was stored on a partition that is
the EFI image device handle.
First problem here is that it is too restrictive. If the very first
device to probe is a spare member of a pool, it will be used to
instantiate a pool but (pd->pd_handle == boot_img->DeviceHandle) won't be
true, thus global pool_guid won't be populated and ZFS boot won't be
tried.
Second problem is that potentially we may find several pools, and all
should be tried to boot. Note that the code for that is already here -
efizfs_get_zfsinfo_list() is imported by efizfs.h but was not used until
now.
[3 lines not shown]
stand/efi: Allow RELAXED or STRICT boot policies
The RELAXED boot policy will automatically search for any root
filesystem (currently zfs only) on any device. STRICT policy only
searches on the boot device. RELEAXED will still prefer the device we
booted from, which is the smallest behavior change we should do. STRICT
may be needed for releases, though.
Sponsored by: Netflix
Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D55107
newgrp.1: Provide examples
"These examples appear to be originally noted thirteen years ago by
Mark Saad, contributed by eadler, put into a patch by Felix Johnson,
and made into mdoc by myself. Finally, put this bug to rest." ~ziaee
PR: 167742
Co-authored-by: eadler, ziaee, Mark Saad
Differential Revision: https://reviews.freebsd.org/D48877
sanitize.lua: A tool to extract interfaces from files
This is a simple too to remove all comments, extra whitespace and other
unnecessary things that may have creative content. What remains can be
just the minimal interface described by the header file. When used with
care, this can mechanically sanitize files, like some device tree
bindings file, that are only #defines that are meant to be used in
multiple context (the dts files and in C code to interpret the resulting
dtb).
Sponsored by: Netflix
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D55087
rc.8: Add rc.suspend as an alias
Make it consistent with the other lifecycle scripts, thus making it
more findable.
Reviewed by: ziaee
Signed-off-by: Pat Maddox <pat at patmaddox.com>
Closes: https://github.com/freebsd/freebsd-src/pull/2047
LinuxKPI: remove dummy header now in common
page_pool/helpers.h does exist in common/include/net/page_pool/helpers.h
so we can remove the dummy header file.
Sponosred by: The FreeBSD Foundation
(cherry picked from commit c944960a5bd7725e4d5e6805ec1e55b7de147c35)
LinuxKPI: 802.11: fold the sta state machine again
In and around d9f59799fc3e7 we adjusted the initial sta state machine
implementation and unfolded some functions, duplicating code.
This version tries to undo some of that as it seems that we can get
away with doing it more cleanly these days.
There are 5 main functions for the path from INIT to RUN (UP1,2,3.1,3.2,4)
and 4 main functions for the path from RUN to INIT (DOWN1,2,3,4).
The reason there is one more on the patch up is that we can go directly
from AUTH to RUN without going through ASSOC first.
In addition there are further functions relying only on these 9 base
state change functions in order to implement the remaining possible
state transitions net80211 can do (without CSA and SLEEP).
Another change is that we no longer take a sta always through INIT/SCAN
first and then back up to AUTH, that is, we are no longer deleting the
sta from the firmware unless net80211 would also take us down to that
state and in a follow-up back up.
[13 lines not shown]