Commit graph

4455 commits

Author SHA1 Message Date
Edward Tomasz Napierala
087ea342ed linux: mv sys/i386/linux/linux_ptrace{,_machdep}.c
In preparation for machine-independent sys/compat/linux/linux_ptrace.c,
rename the i386-specific Linux ptrace(2) implementation.  No functional
changes.

Sponsored By:	EPSRC
Differential Revision: https://reviews.freebsd.org/D32757

(cherry picked from commit 4dfd612286)
2022-06-17 22:33:35 +03:00
Dmitry Chagin
274667c1ee linux(4): Fix amd64 gcc build.
Do not specify memory model and mregparm for amd64, it's only
available on IA-32 architecture.

Reported by:		jhb, jrtc27
MFC after:		2 weeks

(cherry picked from commit b0fa09a0a7)
2022-06-17 22:33:14 +03:00
Dmitry Chagin
2cb3d5ae1e linux(4): Fix i386 gcc build.
Do not specify memory model for i386. Seems that clang silencly
ignores -mcmodel unlike gcc.

Reported by:		jhb
MFC after:		2 weeks

(cherry picked from commit de273c83a1)
2022-06-17 22:33:13 +03:00
Dmitry Chagin
a340b5b4bd linux(4); Almost complete the vDSO.
The vDSO (virtual dynamic shared object) is a small shared library that the
kernel maps R/O into the address space of all Linux processes on image
activation. The vDSO is a fully formed ELF image, shared by all processes
with the same ABI, has no process private data.

The primary purpose of the vDSO:
- non-executable stack, signal trampolines not copied to the stack;
- signal trampolines unwind, mandatory for the NPTL;
- to avoid contex-switch overhead frequently used system calls can be
  implemented in the vDSO: for now gettimeofday, clock_gettime.

The first two have been implemented, so add the implementation of system
calls.

System calls implemenation based on a native timekeeping code with some
limitations:
- ifunc can't be used, as vDSO r/o mapped to the process VA and rtld
  can't relocate symbols;
- reading HPET memory is not implemented for now (TODO).

In case on any error vDSO system calls fallback to the kernel system
calls. For unimplemented vDSO system calls added prototypes which call
corresponding kernel system call.

Relnotes:		yes
Tested by:              trasz (arm64)
Differential revision:  https://reviews.freebsd.org/D30900
MFC after:              2 weeks

(cherry picked from commit 9931033bbf)
2022-06-17 22:33:07 +03:00
Edward Tomasz Napierala
9240bf3e1f linux(4): implement coredumps on arm64
Previously they only worked on amd64.

Sponsored By:	EPSRC
Differential Revision:	https://reviews.freebsd.org/D30975

(cherry picked from commit 45d99014ca)
2022-06-17 22:33:02 +03:00
Edward Tomasz Napierala
1b196c07b8 linux(4): implement coredump support
Implement dumping core for Linux binaries on amd64, for both
32- and 64-bit executables.  Some bits are still missing.

This is based on a prototype by chuck@.

Reviewed By:	kib
Sponsored By:	EPSRC
Differential Revision:	https://reviews.freebsd.org/D30019

(cherry picked from commit 447636e43c)
2022-06-17 22:33:02 +03:00
Eugene Grosbein
0bbbd845fd MFC: if_glxgbe: fix stand-alone module build
Fix module build outside of kernel build environment.

(cherry picked from commit 32467e47b7)
2022-06-08 08:21:21 +07:00
Eugene Grosbein
3a6c9f345a MFC: if_glxgb: fix stand-alone module build
Fix module build outside of kernel build environment.

(cherry picked from commit 966e279052)
2022-06-08 08:20:26 +07:00
Eugene Grosbein
eafbf796db if_qlxge: fix stand-alone module build
Fix module build outside of kernel build environment.

(cherry picked from commit 20634f0261)
2022-06-08 08:19:51 +07:00
Eugene Grosbein
3279cac9dd mii: correction after MFC
Fix after wrong conflict resolution by me during cherry-pick.
This is direct commit to stable/13.

Fixes:	32d8af2b2d
2022-06-06 00:25:13 +07:00
Warner Losh
32d8af2b2d MFC mii: Add opt_platform.h to all miibus drivers
miivar.h includes opt_platform.h. Make sure all the drivers that use the
miibus_if.h interface file have opt_platform.h as well. While some of
these may not, strictly speaking, need it, it's easier to include it
universally for miibus.

Sponsored by:		Netflix

(cherry picked from commit b111430e54)

Author:    Warner Losh <imp@FreeBSD.org>
2022-06-05 23:49:24 +07:00
Bjoern A. Zeeb
50529f0e0b iwlwifi: update firmware
Update to the latest iwlwifi firmware based on
 linux-firmware at b19cbdca78ab2adfd210c91be15a22568e8b8cae
 (tag: 20220509)
and update firmware module Makefiles accordingly.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 275172b519)
2022-06-03 16:56:37 +00:00
Bjoern A. Zeeb
97491c6b70 iwlwifi: update driver from iwlwifi-next
Import code update from iwlwifi-next
 at e89600ebeeb14d18c0b062837a84196f72542830.

This amongst other things removes the deprecated BCAST_FILTERING option,
which we had disabled before due to firmware issues.
Also prepares us for the next firmware update.

The "enable_ini" module option has become an integer with a
sysctl proc equivalent handler.  Disable the module parameter changing
for the moment until we'll have working LinuxKPI support or implement
it as SYSCTL_PROC in FreeBSD directly.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit fac1f59384)
2022-06-03 16:56:26 +00:00
Bjoern A. Zeeb
b7d358ded2 rtw88: add man pages and hook up to build
Add man pages for rtw88 and rtw88fw.  Install a copy of the firmware
license file and hook up the driver and firmware modules to the build.

Sponsored by:	The FreeBSD Foundation
Relnotes:	yes

(cherry picked from commit 20eeed6844)
2022-06-03 15:51:16 +00:00
Bjoern A. Zeeb
d3b0a58ee7 rtw88: import firmware for Realtek's rtw88 supported chipsets.
Import the most recent versions of the firmware images for the
rtw88 driver.

This is based on linux-firmware at 681281e49fb6778831370e5d94e6e1d97f0752d6.

rtw8822c firmware got downgraded in a later commit to 9.9.10:
firmware version 9.9.11 added support for hw_scan and is reportedly
causing more problems than 9.9.10 does.

The license of the firmware matches the previous rtwnfw(4) firmware
files (modulo a Copyright year) and you can find a copy in
sys/contrib/dev/rtw88fw/LICENCE.rtlwifi_firmware.txt.

Add build infrastructure to create the .ko files but do not yet hook
it up to the build until all parts are in the tree.

Approved by:	core (imp)
PR:		248235

(cherry picked from commit 73d4ebea35)
(cherry picked from commit 3443476ca9)
2022-06-03 15:49:22 +00:00
Bjoern A. Zeeb
b130a058aa rtw88: import Realtek's rtw88 driver
Import rtw88 based on wireless-testing at
5d5d68bcff1f7ff27ba0b938a4df5849849b47e3 with adjustments for FreeBSD.

While our version of the driver has knowledge about the incapablity
of DMA above 4GB we do see errors if people have more than that
often already showing when laoding firmware.
The problem for that is currently believed to be outside this driver
so importing it anyway for now.

Given the lack of full license texts on non-local files this is
imported under the draft policy for handling SPDX files (D29226). [1]

Approved by:	core (imp) [1]

(cherry picked from commit 2774f20680)
2022-06-03 15:48:27 +00:00
John Baldwin
86538266f8 infiniband: Disable -Wredundant-decl warnings.
ib_uverbs_flow_resources_free() is declard in two header files in
upstream OFED.  Disable the warning to avoid introducing diffs to fix
the build on GCC 9.

While here, fix the ibcore module to disable the same warnings
disabled in OFED_CFLAGS.

Reviewed by:	hselasky
Differential Revision:	https://reviews.freebsd.org/D31943

(cherry picked from commit 44126818d2)
2022-05-10 15:51:49 -07:00
John Baldwin
3200378545 Remove nonexistent include path for arm64 crypto files.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D31932

(cherry picked from commit 828f257277)
2022-05-10 15:51:49 -07:00
John Baldwin
8252f0b6ac Sort libsodium sources by path in sys/modules/crypto/Makefile.
This matches the order used in sys/conf/files to make it easier to
keep these two files in sync.

Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D33484

(cherry picked from commit 8b4af206f6)
2022-04-29 14:09:07 -07:00
Eugene Grosbein
f66bb161ab modules: fix mii build
Fixes:	9ef382e065
2022-04-17 04:56:06 +07:00
Milan Obuch
9ef382e065 MFC: mii: include missing sources in loadable module
As of today, using 'kldload miibus' is not equivalent to using 'device
miibus' in a kernel config. Newly introduced PHY drivers (DP83822,
DP83867, VSCPHY) and source files/PHY driver for FDT-enabled kernels
are missing. Without including them, kernel modules using any function
from dev/mii/mii_fdt.c refuse to load. Additionally, miivar.h directly
includes opt_platform.h.

Add the missing sources to the module build, with the FDT-only files
gated behind an OPT_FDT check. Maintain the alphabetical listing of
SRCS, but move the required header files to a separate line to improve
readability.

Reviewed by:	mhorne, mindal@semihalf.com
Differential Revision:	https://reviews.freebsd.org/D34256

(cherry picked from commit 517ea731d4)
2022-04-17 02:18:14 +07:00
Kevin Lo
ab7456d72a MFC: modules: mgb: need opt_platform.h
This fixes the standalone build.

(cherry picked from commit dea952c3e2)
2022-04-17 01:38:10 +07:00
Mitchell Horne
62c0ba91c7 Revert "mii: include missing sources in loadable module"
This reverts commit b9ec0b7e86. It breaks
the build.

Reported by:	Jenkins, kp
2022-04-11 14:54:13 -03:00
Milan Obuch
b9ec0b7e86 mii: include missing sources in loadable module
As of today, using 'kldload miibus' is not equivalent to using 'device
miibus' in a kernel config. Newly introduced PHY drivers (DP83822,
DP83867, VSCPHY) and source files/PHY driver for FDT-enabled kernels
are missing. Without including them, kernel modules using any function
from dev/mii/mii_fdt.c refuse to load. Additionally, miivar.h directly
includes opt_platform.h.

Add the missing sources to the module build, with the FDT-only files
gated behind an OPT_FDT check. Maintain the alphabetical listing of
SRCS, but move the required header files to a separate line to improve
readability.

Reviewed by:	mhorne, mindal@semihalf.com
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D34256

(cherry picked from commit 517ea731d4)
2022-04-11 11:04:08 -03:00
Milan Obuch
49f55cdfd8 cgem: Support building as a loadable kernel module
For development, building a driver as kernel module is both convenient
and a time saver (no need for reboot on some change, testing it requires
just kldunload and kldload, a matter of seconds). For some special
cases, it may be even desirable to postpone initializing the network
interface after some action is done (loading a FPGA bitstream may be
required for Zynq/ZynqMP based hardware as an example).

Building is limited to ARM, ARM64 and RISC-V architectures (for Zynq,
ZynqMP, PolarFire Soc based boards, and HiFive based boards are known to
use CGEM at the moment).

Reviewed by:	mhorne
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D34687

(cherry picked from commit 242cd60a0a)
2022-04-11 11:04:08 -03:00
Martin Matuska
c088e4d539 zfs: merge openzfs/zfs@52bad4f23 (zfs-2.1-release) into stable/13
OpenZFS release 2.1.4

Notable upstream pull request merges:
  #13219 FreeBSD: add missing replay check to an assert in zfs_xvattr_set
  #13220 module: freebsd: avoid a taking a destroyed lock in zfs_zevent bits
  #13221 Fix ACL checks for NFS kernel server

Obtained from:	OpenZFS
OpenZFS tag:	zfs-2.1.4
OpenZFS commit:	52bad4f23d
Relnotes:	yes
2022-03-29 12:49:44 +02:00
Alexander V. Chernikov
c7655e1f36 linux: add sysctl to pass untranslated interface names
Reviewed by:	kib
MFC after:	2 weeks
Differential Revision: https://reviews.freebsd.org/D33792

(cherry picked from commit 1f70a85b4c)
2022-03-28 08:49:23 +00:00
Eugene Grosbein
80bab8aa7e linuxkpi: fix module build outside of kernel build environment
(cherry picked from commit f5a2e7b0e8)
2022-03-13 15:56:38 +07:00
Martin Matuska
bd2e56ef47 zfs: merge openzfs/zfs@ef83e07db (zfs-2.1-release) into stable/13
OpenZFS release 2.1.3

Notable upstream pull request merges:
  #12569 FreeBSD: Really zero the zero page
  #12828 FreeBSD: Add vop_standard_writecount_nomsyn
  #12828 zfs: Fix a deadlock between page busy and the teardown lock
  #12828 FreeBSD: Catch up with more VFS changes
  #12851 FreeBSD: Provide correct file generation number
  #12857 Verify dRAID empty sectors
  #12874 FreeBSD: Update argument types for VOP_READDIR
  #12896 Reduce number of arc_prune threads
  #12934 FreeBSD: Fix zvol_*_open() locking
  #12961 FreeBSD: Fix leaked strings in libspl mnttab
  #12964 Fix handling of errors from dmu_write_uio_dbuf() on FreeBSD
  #12981 Introduce a flag to skip comparing the local mac when
         raw sending
  #12985 Avoid memory allocations in the ARC eviction thread
  #13014 Report dnodes with faulty bonuslen
  #13016 FreeBSD: Fix zvol_cdev_open locking
  #13027 Fix clearing set-uid and set-gid bits on a file when
         replying a write
  #13031 Add enumerated vdev names to 'zpool iostat -v' and
         'zpool list -v'
  #13074 Enable encrypted raw sending to pools with greater ashift
  #13076 Receive checks should allow unencrypted child datasets
  #13098 Avoid dirtying the final TXGs when exporting a pool
  #13172 Fix ENOSPC when unlinking multiple files from full pool

Obtained from:	OpenZFS
OpenZFS commit:	ef83e07db5
OpenZFS tag:	zfs-2.1.3
Relnotes:	yes
2022-03-11 10:54:49 +01:00
Santiago Martinez
20ea94a9ec if_epair: fix build with RSS and INET or INET6 disabled
Reviewed by:	kp
MFC after:	1 week

(cherry picked from commit 52bcdc5b80)
2022-03-10 09:51:41 +01:00
Eric Joyner
a0cdf45ea1
ice(4): Update to 1.34.2-k
- Adds FW logging support
  - Once enabled, this lets the firmware print event and error messages
    to the log, increasing the visibility into what the hardware is
    doing; this is useful for debugging
- General bug fixes
- Adds inital DCB support to the driver
  - Notably, this adds support for DCBX to the driver; now with the
    fw_lldp sysctl set to 1, the driver and adapter will adopt a DCBX
    configuration sent from a link partner
  - Adds statistcs sysctls for priority flow control frames
  - Adds new configuration sysctls for DCB-related features: (VLAN) user
    priority to TC mapping; ETS bandwidth allocation; priority flow
    control
- Remove unused SR-IOV files (until support gets added)

Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Tested by:	jeffrey.e.pieper@intel.com
MFC after:	3 days
MFC with:	213e91399b, e438f0a975
Relnotes:	yes
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D34024

(cherry picked from commit 56429daea2)
(cherry picked from commit 61d83041ab)
2022-03-07 16:11:46 -08:00
Eric Joyner
c185d44f1c
ice_ddp: Update to 1.3.27.0
This is intended to be used with forthcoming ice(4) driver version 1.34.2.

Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Sponsored by:	Intel Corporation

(cherry picked from commit e438f0a975)
2022-03-07 16:10:48 -08:00
Piotr Kubaj
3abd066b6d
powerpc: enable ice in GENERIC64LE
Approved by:	erj
Differential Revision: https://reviews.freebsd.org/D33974

(cherry picked from commit a0f3abb098)
2022-03-07 16:09:12 -08:00
Eric Joyner
41423f3a62
iavf(4): Split source and update to 3.0.26-k
The iavf(4) driver now uses a different source base from ixl(4), since
it will be the standard VF driver for new Intel Ethernet products going
forward, including ice(4). It continues to use the iflib framework
for network drivers.

Since it now uses a different source code base, this commit adds a new
sys/dev/iavf entry, but it re-uses the existing module name so no
configuration changes are necessary.

Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Reviewed by:		kbowling@
Tested by:		lukasz.szczepaniak@intel.com
Sponsored by:		Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D28636

(cherry picked from commit ca853dee3b)
2022-03-07 16:00:08 -08:00
Eric Joyner
232f141b32
ice_ddp: Update to 1.3.24.0
This version is intended to be used with the 0.29.4 version of the
ice(4) driver, which will be be committed afterwards.

Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Reviewed by:	stallamr_netapp.com
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D30887

(cherry picked from commit 538ef055b7)
(cherry picked from commit 070f7812da)
2022-03-07 15:59:31 -08:00
Navdeep Parhar
8240114045 cxgbe(4): Enable the hardware TCP Offload Module (t4_tom) on aarch64.
Sponsored by:	Chelsio Communications

(cherry picked from commit 13a0d225be)
2022-03-04 16:37:45 -08:00
Allan Jude
7abbfbda1e smbios: Move smbios driver out from x86 machdep code
Add it to the x86 GENERIC and MINIMAL kernels

Sponsored by:	Ampere Computing LLC
Submitted by:	Klara Inc.
Reviewed by:	rpokala
Differential Revision:	https://reviews.freebsd.org/D28738

(cherry picked from commit d0673fe160)
2022-03-03 08:20:07 -06:00
Navdeep Parhar
86b0782a37 cxgbe(4): Update firmwares to 1.26.6.0.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CHANGES
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Version : 1.26.6.0
Date    : 01/03/2022
================================================================================

Fixes
-----
BASE:
- Fixed one module eeprom read failure.
- Fixed an issue with speed selection when 40G and 25G are advertised and
  supported.
- Fixed a random traffic hang when T5 receives invalid ets BW in dcbx
  messages from a switch.
- Fixed very long link up time with few switches.
================================================================================

Obtained from:	Chelsio Communications
Sponsored by:	Chelsio Communications

(cherry picked from commit 3b76242433)
2022-02-27 22:48:07 -08:00
Navdeep Parhar
6be5e07275 cxgbe(4): Update firmwares to 1.26.4.0
(Rest is from the README that came with the firmware)

Version : 1.26.4.0
Date    : 12/02/2021

Fixes
-----

BASE:
- Fixed error on setting 25G speed on 100G copper with multiple FEC set in
  firmware commands.
- Handle link of unknown optics modules by enabling module tx unconditionally.
- Fixed link not coming up for 25G CRS phys. Firmware incorrectly tried to
  bring up the link in RS-FEC but as per IEEE spec, it must be BASER FEC.
- Fixed an issue where firmware doesn't automatically retry next FEC if driver
  asks to bring up the link using RS-FEC and link doesn't come up.

Obtained from:	Chelsio Communications
Sponsored by:	Chelsio Communications

(cherry picked from commit 357ba2cf17)
2022-02-27 22:46:38 -08:00
Bjoern A. Zeeb
11045f1b73 iwlwifi: update firmware
Update to the latest firmware based on
linux-firmware at c53073d4e1485ac9f7cb065db466793c495aead7
and update firmware module Makefiles accordingly.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 062103fc93)
2022-02-27 23:41:55 +00:00
Bjoern A. Zeeb
d2a50aafb6 iwlwifi: update from iwlwifi-next
Import new code from iwlwifi-next at cb0a1fb7fd86b0062692b5056ca8552906509512
(matching tag: iwlwifi-next-for-kalle-2022-02-18).

Also add files not previously imported because we are not yet compiling
them to ease updating and having them when needed.

This adds MEI (Management Engine) support upstream which we cannot import
(currently GPL-only) so we have stub functions for the missing bits.

This also reduces the diff to upstream.  Changes submitted to avoid
problems with const and  with void * arithmetics were merged.

In the module build Makefile disable CONFIG_IWLWIFI_OPMODE_MODULAR
as we are building iwlwifi as a single module.

Sponsored by:   The FreeBSD Foundation

(cherry picked from commit d9836fb4b9)
2022-02-27 23:41:54 +00:00
Henri Hennebert
545def055b rtsx: Convert driver to use the mmc_sim interface
A lot more generic cam related things were done in mmc_sim so this
simplifies the driver a lot.

Differential Revision:	https://reviews.freebsd.org/D32154
Reviewed by:		imp

(cherry picked from commit 8e9740b62e)
2022-02-22 19:39:19 -05:00
Ed Maste
e0262ffbc6 mgb: Connect if_mgb module to the build
It supports the following Microchip devices:

LAN7430 PCIe Gigabit Ethernet controller with PHY
LAN7431 PCIe Gigabit Ethernet controller with RGMII interface

The driver has a number of caveats and limitations, but is functional.

Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 543df60907)
2022-02-12 14:13:50 -05:00
Dimitry Andric
284434f7a6 Disable clang 14 warning about bitwise operators in zstd
Parts of zstd, used in openzfs and other places, trigger a new clang 14
-Werror warning:

```
sys/contrib/zstd/lib/decompress/huf_decompress.c:889:25: error: use of bitwise '&' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
                        (BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished)
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

While the warning is benign, it should ideally be fixed upstream and
then vendor-imported, but for now silence it selectively.

MFC after:	3 days

(cherry picked from commit 5f2aca8394)
2022-02-11 17:42:30 +01:00
Andriy Gapon
0237541d15 add overlay for enabling i2c1 on allwinner h3
At least on Orange Pi PC Plus it is routed to the 40-pin header, so it
can used to communicate with external devices.

(cherry picked from commit a471646a08)
2022-02-09 11:35:59 +02:00
Andriy Gapon
b8db946c3b add overlay for enabling spi0 on allwinner h3
At least on Orange Pi PC Plus it is routed to the 40-pin header, so it
can used to communicate with external devices.

(cherry picked from commit f4a041af29)
2022-02-09 11:35:39 +02:00
Andriy Gapon
ea331a2ef4 add overlay for enabling serial1 / uart1 on rk3328
On Rock64 the uart is routed to pins on the "Pi-2" header, so it is
potentially useful.

Pin mapping:
----------------------------
| ID | Name     | Function |
----------------------------
| 15 | GPIO3_A4 | TX       |
| 16 | GPIO3_A5 | RTS      |
| 18 | GPIO3_A6 | RX       |
| 22 | GPIO3_A7 | CTS      |
----------------------------

(cherry picked from commit 173d0fb616)
2022-02-09 11:35:18 +02:00
Andriy Gapon
b4a16940b9 add overlay for enabling i2c0 on rk3328
On Rock64 it is routed to pins 3 and 5 of the so called Pi-2 header.

(cherry picked from commit f41f98f0f0)
2022-02-09 11:34:58 +02:00
Hans Petter Selasky
26b0e75d64 mlx5: Implement flow steering helper functions for TCP sockets.
This change adds convenience functions to setup a flow steering rule based on
a TCP socket. The helper function gets all the address information from the
socket and returns a steering rule, to be used with HW TLS RX offload.

Sponsored by:	NVIDIA Networking

(cherry picked from commit 2c0ade806a)
2022-02-08 16:08:53 +01:00
Hans Petter Selasky
e53c3826c0 mlx5en: Implement support for internal queues, IQ.
Internal send queues are regular sendqueues which are reserved for WQE commands
towards the hardware and firmware. These queues typically carry resync
information for ongoing TLS RX connections and when changing schedule queues
for rate limited connections.

The internal queue, IQ, code is more or less a stripped down copy
of the existing SQ managing code with exception of:

1) An optional single segment memory buffer which can be read or
   written as a whole by the hardware, may be provided.
2) An optional completion callback for all transmit operations, may
   be provided.
3) Does not support mbufs.

Sponsored by:	NVIDIA Networking

(cherry picked from commit 694263572f)
2022-02-08 16:08:52 +01:00