FreeBSD/src a54f835share/man/man4 ixv.4, sys/dev/ixgbe ixgbe_hv_vf.h if_ixv.c

ixv: Use host granted RSS queues on Hyper-V

Discover the Hyper-V queue grant through PCI configuration space for
X550, X552, X553, and E610 VFs.  The X550 family exposes a byte at 0x207;
0x208 is a separate DCB flag.  E610 exposes a little-endian queue count
word at those offsets.  Accept grants of one, two, or four and use at most
two symmetric queue sets, subject to the existing MSI-X resource limit.
Keep one queue for invalid grants and for 82599/X540 Hyper-V VFs.

The family gates and queue limits are snooped from Windows Intel VF bus
traffic.

Update the shared code queue max so stop disables every usable queue.
Also program the receive length limit on every usable RX queue instead
of only queue zero and retain the 82599 exception for that register field.

MFC after:      2 weeks
Sponsored by:   BBOX.io
DeltaFile
+48-6sys/dev/ixgbe/ixgbe_hv_vf.c
+14-1share/man/man4/ixv.4
+1-1sys/dev/ixgbe/if_ixv.c
+1-0sys/dev/ixgbe/ixgbe_hv_vf.h
+64-84 files

FreeBSD/src d435248sys/conf files

ufshci: build the ioctl file into the kernel

The passthrough ioctl went into the module build only. A kernel with
device ufshci then failed to link, because ufshci_ctrlr.c calls
ufshci_ioctl_construct() and ufshci_ioctl_destruct() and neither was
compiled in.

Add the file to sys/conf/files.

Fixes:          28fefc441e3b ("ufshci: add a control device node")
Sponsored by:   Samsung Electronics
DeltaFile
+1-0sys/conf/files
+1-01 files

FreeBSD/src 9fc563dshare/misc committers-ports.dot

committers-ports.dot: Restore dteske from alumni

Move back to the current committers section and record fuz and jrm
as mentors.

Approved by:    portmgr
Reviewed by:    fuz (mentor), jrm (co-mentor)
Differential Revision:  https://reviews.freebsd.org/D59500
DeltaFile
+4-1share/misc/committers-ports.dot
+4-11 files

FreeBSD/src f589d1fshare/man/man4 ixv.4, sys/dev/ixgbe if_ixv.c ixgbe_hv_vf.c

ixv: Recover E610 Hyper-V carrier without the PCI link query

Current Windows PF drivers do not emulate the E610 link-status query at
PCI configuration offset 0x209.  The installed Intel ixw 1.8.54.0 driver
returns zero even with the physical port connected, leaving the VF at
no carrier after an otherwise successful hn handoff.

When the query returns zero, use VFLINKS for carrier only.  Its speed
field is not the negotiated E610 line rate: the tested 1 Gb/s port
reports the default 10 Gb/s encoding.  Publish an unknown speed instead,
including in the verbose link-up diagnostic, and document this fallback.
Keep nonzero PCI results authoritative and reject all-ones reads.  Other
Hyper-V families and the native E610 mailbox path are unchanged.

A zero result cannot distinguish an unsupported query from a down link;
in either case this fallback relies on the legacy carrier indication.
The connected and disconnected ports reported VFLINKS.UP set and clear,
respectively, while both returned zero from the PCI query.


    [2 lines not shown]
DeltaFile
+17-0sys/dev/ixgbe/ixgbe_hv_vf.c
+7-3sys/dev/ixgbe/if_ixv.c
+4-1share/man/man4/ixv.4
+28-43 files

FreeBSD/src 9ea7bebshare/man/man4 ixv.4, sys/dev/ixgbe ixgbe_osdep.h ixgbe_osdep.c

ixv: Add Hyper-V virtual function support

Hyper-V does not expose the normal Intel PF/VF mailbox.

Import the Hyper-V operation overrides from DPDK and complete its reset
callback with the configuration-space mechanism submitted by Microsoft.
Route ixv operations through the operation table, use mailbox API 1.0,
and limit this environment to one queue pair.

Claim the 82599, X540, X550, X550EM-X, and X550EM-A Hyper-V device IDs
listed by DPDK.  Select the same path for the E610 Hyper-V subdevice
identity defined there.

For E610/Linkville, read the emulated VFLINKS-format status from PCI
configuration space at offset 0x209.  Older families retain the MMIO
VFLINKS path.

Treat receive-mode changes as host-owned no-ops and do not retry VLAN
operations that Hyper-V permanently rejects.  Limit the Hyper-V 82599

    [13 lines not shown]
DeltaFile
+277-0sys/dev/ixgbe/ixgbe_hv_vf.c
+94-40sys/dev/ixgbe/if_ixv.c
+12-0sys/dev/ixgbe/ixgbe_hv_vf.h
+9-2share/man/man4/ixv.4
+7-1sys/dev/ixgbe/ixgbe_osdep.c
+4-0sys/dev/ixgbe/ixgbe_osdep.h
+403-432 files not shown
+406-438 files

FreeBSD/src b5519c4contrib/hyperv/tools/scripts hyperv_vfup

hyperv: Configure IPv6 when setting up VF failover

The default VF-up script moves IPv4 configuration from the synthetic
interface to a failover lagg, but leaves IPv6 unconfigured on the lagg.
Adding the synthetic interface as a member can remove its IPv6 addresses,
so deleting the remaining member addresses is not sufficient.

Stop accepting router advertisements on the synthetic interface before
adding it to the lagg.  Leave its link-local address and IPv6 enable state
in place for lagg's address, prefix and default-router cleanup, then disable
IPv6 and explicitly remove any remaining addresses.  This also covers
members without a link-local address or with IPv6 already disabled.

Replay the synthetic interface's IPv6 rc.conf configuration on the lagg,
including aliases, prefix-derived addresses and legacy configuration names.
Remap the variables in a subshell and reuse network.subr's IPv6 helpers.
For SLAAC, solicit fresh router advertisements rather than copying learned
addresses as permanent ones.  Configure IPv6 independently of the IPv4
DHCP/static choice, and leave existing laggs alone on repeated invocation.

    [6 lines not shown]
DeltaFile
+75-5contrib/hyperv/tools/scripts/hyperv_vfup
+75-51 files

FreeBSD/src 90f7956contrib/hyperv/tools/scripts hyperv_vfup

hyperv: Bound IPv4 address removal when configuring VF failover

The VF-up script repeatedly deletes the first IPv4 address from hn until
ifconfig fails.  Netlink-based ifconfig returns success when no address
remains, so the script can loop forever and block subsequent devd work.

Use ipv4_down() from the already-sourced network.subr to enumerate the
addresses and delete each explicitly.  This also handles multiple
addresses without relying on the exit status of an empty deletion.  The
behavior depends on ifconfig, not the VF hardware, so no device-specific
fallback is needed.

Fixes:  c68595695679 ("hyperv: Add VF bringup scripts and devd rules.")
MFC after:      2 weeks
Sponsored by:   BBOX.io
DeltaFile
+2-8contrib/hyperv/tools/scripts/hyperv_vfup
+2-81 files

FreeBSD/src 8e816fcsys/dev/hyperv/netvsc if_hn.c, sys/net if_var.h if.c

hn: Invoke the owned VF's transmit queue flush callback

The generic if_qflush() only clears if_snd.  Calling it directly for a
transparent VF bypasses the driver's callback and its private software
transmit queues.  Add if_getqflushfn(), matching the existing callback
accessors, and invoke the registered callback while hn_vf_lock protects
the VF pointer.

Flush an attached VF whenever transparent mode owns it, not only while
the VF datapath is enabled.  Disabling transmit during handoff does not
discard packets already queued to the VF.  This also covers the inactive
interval after fallback.  Non-transparent VFs remain independently owned
and are not flushed by hn.  Synthetic queue flushing is unchanged.

MFC after:      2 weeks
Sponsored by:   BBOX.io
DeltaFile
+6-0sys/net/if.c
+3-2sys/dev/hyperv/netvsc/if_hn.c
+1-0sys/net/if_var.h
+10-23 files

FreeBSD/src 6b3b1d6sys/dev/hyperv/netvsc if_hn.c

hn: Serialize VF link events with datapath handoff

Hold hn_vf_lock across the VF identity/state check and link publication.
Otherwise an event can observe an enabled VF, pause during fallback, then
overwrite the freshly reported synthetic carrier with stale VF state.
Ignore events while switching or after the association generation changes.
The link notification only queues further work, so the callback does not
need the sleepable hn lock.

Document that association serial numbers are currently diagnostic:
hn_ismyvf() matches the VF by MAC, while notifications gate availability.

MFC after:      2 weeks
Sponsored by:   BBOX.io
DeltaFile
+8-1sys/dev/hyperv/netvsc/if_hn.c
+8-11 files

FreeBSD/src a64205bsys/dev/hyperv/netvsc hn_nvs.h if_hnreg.h

hn: Track VF association and wait for datapath switch completion

Handle the host's VF association notifications instead of ignoring them.
Require an allocated association before switching to the MAC-matched VF,
and track notification generations so a withdrawal during initialization
cannot enable an obsolete handoff.  Defer association and address-event
work to the VF taskqueue; the receive channel must remain available to
deliver switch completions.

Request and wait for the empty VMBus completion for SET_DATAPATH, checking
submission and channel-revocation failures.  Enable transparent VF
transmit and select its link status only after the switch completes.
Use the existing transaction lifetime and revocation handling, without a
timeout that could leave a late completion referencing a freed request.

Restore synthetic capabilities, TSO limits and hardware-assist flags on
fallback, targeting hn rather than the departing VF.  Block transparent
transmit during handoff and after association withdrawal.  Separate the
attach delay from saved-setting readiness, permit delayed association to

    [6 lines not shown]
DeltaFile
+242-93sys/dev/hyperv/netvsc/if_hn.c
+42-6sys/dev/hyperv/netvsc/hn_nvs.c
+9-1sys/dev/hyperv/netvsc/if_hnvar.h
+7-1sys/dev/hyperv/netvsc/if_hnreg.h
+1-1sys/dev/hyperv/netvsc/hn_nvs.h
+301-1025 files

FreeBSD/src ddcf8besys/dev/hyperv/pcib vmbus_pcib.c

hyperv: Stop bus relations handling from falling through to eject

The PCI_BUS_RELATIONS2 case lacks a break after queuing the reported
devices.  It consequently processes the same packet as PCI_EJECT,
interpreting device_count as the slot number.  If that value matches an
existing child, the callback schedules an unintended device eject.

End the relations case after processing the device list, matching the
original PCI_BUS_RELATIONS handling.

Fixes:  ea11861e434a ("arm64: Hyper-V: vPCI: Enabling v-PCI in FreeBSD in ARM64 Hyper-V")
MFC after:      2 weeks
Sponsored by:   BBOX.io
DeltaFile
+1-0sys/dev/hyperv/pcib/vmbus_pcib.c
+1-01 files

FreeBSD/src 7c43b91sys/dev/hyperv/netvsc if_hn.c

hn: Refresh VF offloads after bringing it up

VF readiness can precede its first initialization.  In particular,
iflib populates if_hwassist during init, so copying it while the VF is
still down can leave hn advertising checksum and TSO capabilities with
no hardware-assist flags.  The stack then uses software segmentation
until a capability ioctl happens to refresh the copied state.

Synchronize enabled capabilities and hardware-assist flags after the VF
up ioctl succeeds, before switching the datapath and enabling transparent
VF transmit.  Use the existing helper in the common initialization path,
covering both normal bring-up and delayed VF initialization.

MFC after:      2 weeks
Sponsored by:   BBOX.io
DeltaFile
+6-0sys/dev/hyperv/netvsc/if_hn.c
+6-01 files

FreeBSD/src 8895b13etc/mtree BSD.include.dist, include Makefile

ufshci: install the ioctl header

The passthrough ioctl has a userland ABI header, but nothing installed
it. A program that wanted to use the ioctl had to copy the headers out
of the source tree by hand.

Install ufshci.h and ufshci_ioctl.h under /usr/include/dev/ufshci, the
way nvme installs nvme.h. The ioctl header pulls in ufshci.h, so both
go. Add the directory to the include mtree so installworld creates it.

Reviewed by:    imp (mentor)
Sponsored by:   Samsung Electronics
Differential Revision:  https://reviews.freebsd.org/D59560
DeltaFile
+6-0include/Makefile
+2-0etc/mtree/BSD.include.dist
+8-02 files

FreeBSD/src 28fefc4sys/dev/ufshci ufshci.h ufshci_private.h, sys/modules/ufshci Makefile

ufshci: add a control device node

The driver only exposed a CAM SIM. Userland had no way to reach the
device for anything that is not a SCSI command, so reading a descriptor
or an attribute was impossible.

Add /dev/ufshci%d as a root only node and the ioctl ABI header for it.
The node answers no ioctl yet. The header pulls in ufshci.h, which
declares bool only under _KERNEL, so include stdbool.h for userland the
way nvme.h already does.

Reviewed by:    imp (mentor)
Sponsored by:   Samsung Electronics
Differential Revision:  https://reviews.freebsd.org/D59558
DeltaFile
+67-0sys/dev/ufshci/ufshci_ioctl.c
+54-0sys/dev/ufshci/ufshci_ioctl.h
+6-0sys/dev/ufshci/ufshci_private.h
+6-0sys/dev/ufshci/ufshci_ctrlr.c
+3-0sys/dev/ufshci/ufshci.h
+1-0sys/modules/ufshci/Makefile
+137-06 files

FreeBSD/src ae31f29sys/dev/ufshci ufshci_private.h ufshci_uic_cmd.c

ufshci: add a passthrough ioctl

This ioctl is for a port of ufs-utils:
https://github.com/SanDisk-Open-Source/ufs-utils

The driver only exposed a CAM SIM. Reading a descriptor, an attribute
or a flag needs a query request, and a UniPro attribute needs a DME
command. The driver built both only for its own setup, so userland
could reach neither.

Add two ioctls on the control node. UFSHCI_PASSTHROUGH_CMD sends a
UPIU the caller built, sizes the request from its transaction code,
and copies the response UPIU back. UFSHCI_PASSTHROUGH_UIC carries the
four attribute commands and refuses the rest, which can drop the link
or power the device off. It keeps the raw argument2 so the caller can
read the result code the device reported, not just a failure.

Validate the input and bound it by what the controller can map. The
descriptor has no request length, so the controller reads it from the

    [10 lines not shown]
DeltaFile
+236-0sys/dev/ufshci/ufshci_ioctl.c
+10-4sys/dev/ufshci/ufshci_ioctl.h
+8-2sys/dev/ufshci/ufshci.h
+3-2sys/dev/ufshci/ufshci_uic_cmd.c
+2-0sys/dev/ufshci/ufshci_private.h
+259-85 files

FreeBSD/src d3e5082sys/dev/ufshci ufshci_req_queue.c

ufshci: tell the controller how long the EHS is

The transfer request descriptor has a field for the total Extra Header
Segment length. The driver left it at zero. A request that carried an
EHS went out as the bare command UPIU, and the device answered a request
it had only seen part of.

Fill the field from the request UPIU header, which already carries the
same length. Every other path sets it to zero, so nothing else changes.
An EHS is the first thing that makes a request vary in size, so assert
that the request and the response still fit in the command descriptor.

Reviewed by:    imp (mentor)
Sponsored by:   Samsung Electronics
Differential Revision:  https://reviews.freebsd.org/D59557
DeltaFile
+7-2sys/dev/ufshci/ufshci_req_queue.c
+7-21 files

FreeBSD/src 7fa0ed4contrib/tzdata asia southamerica

contrib/tzdata: import tzdata 2026d

Changes: https://github.com/eggert/tz/blob/2026d/NEWS

(cherry picked from commit fe81d42176f04718d7534242dfd4b9f250ac50fc)
DeltaFile
+80-46contrib/tzdata/northamerica
+114-1contrib/tzdata/NEWS
+32-31contrib/tzdata/theory.html
+49-5contrib/tzdata/backward
+16-13contrib/tzdata/southamerica
+18-6contrib/tzdata/asia
+309-1028 files not shown
+332-12314 files

FreeBSD/src 2598532contrib/tzdata asia southamerica

contrib/tzdata: import tzdata 2026d

Changes: https://github.com/eggert/tz/blob/2026d/NEWS

(cherry picked from commit fe81d42176f04718d7534242dfd4b9f250ac50fc)
DeltaFile
+80-46contrib/tzdata/northamerica
+114-1contrib/tzdata/NEWS
+32-31contrib/tzdata/theory.html
+49-5contrib/tzdata/backward
+16-13contrib/tzdata/southamerica
+18-6contrib/tzdata/asia
+309-1028 files not shown
+332-12314 files

FreeBSD/src 274b0d6sys/fs/nfsserver nfs_nfsdkrpc.c

nfs_nfsdkrpc.c: Fix the "glue" for the nfsrdma.ko modules for NFSv3

Without this patch, nd_xprt is only set for NFSv4.1/4.2.
The nfsrdma.ko needs it to be set for all versions of NFS,
so this one line patch does that.

No semantics change for non-RDMA NFS service.

MFC after:      3 months
Fixes:  7144a1d58c5c ("nfsd: Add glue for the nfsrdma.ko module")
DeltaFile
+1-2sys/fs/nfsserver/nfs_nfsdkrpc.c
+1-21 files

FreeBSD/src fa848d4libexec/rtld-elf rtld.c

rtld: more caution when parsing in digest_notes()

Incorrect ELF might have PT_NOTE slightly larger than the needed to
contain all notes, and the PT_NOTE size could be larger than one page.
Then rtld mmaps just the notes bytes to parse.  After the last note,
we iterate past the mapped region trying to read the Elf_Note header.
This was found in wild.

Require full elf note to fit into the [start_note, end_note) region to
continue the parsing.  Check it in stages, first verifying the Elf_Note
header structure fits, to be able to read the name and data length.
After that, check the whole note against limit.

Reported and tested by: makc
Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59635
DeltaFile
+10-5libexec/rtld-elf/rtld.c
+10-51 files

FreeBSD/src 2ef9731libexec/rtld-elf rtld.c

rtld.c: fix indent

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
DeltaFile
+1-1libexec/rtld-elf/rtld.c
+1-11 files

FreeBSD/src 7e2a425share/man/man4 iflib.4, sys/net iflib.c

iflib: Use a bounded buf_ring for simple_tx

Implement buf_ring/drbr deferred transmit in iflib. This is intended
to allow the new simpler code path to replace mp_ring. This patch
makes the simple_tx outperform mp_ring by a wide margin when CPU is
the bottleneck (eg, cannot fill the NIC). See graphs at:
https://people.freebsd.org/~gallatin/mpring_vs_simple_tx

Note that the buf ring is used for contention, not capacity. Eg,
it is used as a place for contending threads to put packets without
waiting for a mutex. It is not designed to act as a software ring
on top of the hardware descriptors provided by the underlying NIC
driver. "stranded packets" are exceedingly rare due to the fact that
if there is enough load to use the buf_ring, there will probably be
more load coming that can be a drainer. Not scheduling a gtask to
drain is intentional, and we really on the timer as a fallback.

One thing I noticed while developing this patch is that a simple mutex
with no deferral generally outperformed both mp_ring and drbr at high

    [28 lines not shown]
DeltaFile
+570-39sys/net/iflib.c
+48-3share/man/man4/iflib.4
+618-422 files

FreeBSD/src c1fa70csys/dev/virtio/network if_vtnet.c

vtnet: offer VIRTIO_NET_F_GUEST_CSUM

Always offer the VIRTIO_NET_F_GUEST_CSUM feature to the host, and not
only if RXCSUM is enabled on vtnet. Instead of using RXCSUM to control
whether this feature will be negotiated with the host, just use it to
control whether the VIRTIO_NET_HDR_F_DATA_VALID flag on an incoming
packet is processed (i.e., translated to the corresponding mbuf flag
only if RXCSUM is enabled on the vtnet interface).
This has two benefits:
1. Enabling/disabling RXCSUM on vtnet does not require feature
   renegotiation.
2. The host is always allowed to send locally generated TCP or UDP
   packets to the guest without computing a full checksum (by setting
   the VIRTIO_NET_HDR_F_NEEDS_CSUM flag) and not only if the guest has
   enabled RXCSUM on vtnet. Since locally generated packets do not
   require a checksum, this saves otherwise unnecessarily wasted
   computing power.
If a user of a FreeBSD guest really does not want to negotiate the
VIRTIO_NET_F_GUEST_CSUM feature with the host, it still can disable

    [6 lines not shown]
DeltaFile
+42-47sys/dev/virtio/network/if_vtnet.c
+42-471 files

FreeBSD/src 5fb3aeasys/compat/linuxkpi/common/include/asm cpu_device_id.h, sys/compat/linuxkpi/common/include/linux bits.h mod_devicetable.h

linuxkpi: Add x86 CPU ID matching functions and macros

There are two parts that go together:
* `X86_MATCH_VFM()` to declare a matching pattern
* `x86_match_cpu()` to check if the current CPU matches one of the
  patterns in an array.

The i915 DRM driver started to use this in Linux 6.14.

Reviewed by:    kib
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57700
DeltaFile
+37-0sys/compat/linuxkpi/common/src/linux_compat.c
+25-0sys/compat/linuxkpi/common/include/asm/cpu_device_id.h
+17-0sys/compat/linuxkpi/common/include/linux/mod_devicetable.h
+2-0sys/compat/linuxkpi/common/include/linux/bits.h
+81-04 files

FreeBSD/src e1ad124. UPDATING, sys/sys param.h

UPDATING: bump __FreeBSD_version to 1600026 for LinuxKPI changes

The size of multiple embedded structs have changed and may lead to
problems (pci_error_handlers in pci_driver, dev_pm_info in struct device).
Allow these changes to be detected by bumping __FreeBSD_version.

MFC after:      3 days
DeltaFile
+6-0UPDATING
+1-1sys/sys/param.h
+7-12 files

FreeBSD/src b0094b5sys/compat/linuxkpi/common/include/linux device.h

Revert "linuxkpi: Add device under parent, not under class"

This reverts commit fc0a5ae094308609927e9c355928d08923278325.

This changed the sysctl node path and broke IB user space tools (ibv_*).

PR:     298485
Reported by:     Ariel Ehrenberg (aehrenberg nvidia.com)
DeltaFile
+6-4sys/compat/linuxkpi/common/include/linux/device.h
+6-41 files

FreeBSD/src 73166d2sys/compat/linuxkpi/common/src linux_80211.c linux_80211_macops.c

LinuxKPI: 802.11: Always lock around lkpi_80211_mo_{remove_interface,stop}()

Add the missing locking to another two MO driver downcalls, as drivers
always expect it (e.g. rtw89 by assertion).

Add the lock and might_sleep assertions to the respective lkpi_80211_mo_*
downcalls.

PR:             298417
Reviewed by:    bz
MFC after:      3 days
Differential Revision: https://reviews.freebsd.org/D59608
DeltaFile
+6-0sys/compat/linuxkpi/common/src/linux_80211_macops.c
+2-0sys/compat/linuxkpi/common/src/linux_80211.c
+8-02 files

FreeBSD/src a424fb3sys/compat/linuxkpi/common/include/linux pm.h, sys/compat/linuxkpi/common/src linux_compat.c

LinuxKPI: add can_wakeup option and accessor functions

We can implement device_set_wakeup_capable() in the !CONFIG_PM_SLEEP
case;  we do not have the infrastructure in place for the CONFIG_PM_SLEEP
case so leave a pr_debug TODO.

Needed by an upcoming wireless driver.

MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D58883
DeltaFile
+17-0sys/compat/linuxkpi/common/include/linux/pm.h
+6-0sys/compat/linuxkpi/common/src/linux_compat.c
+23-02 files

FreeBSD/src cfb23b0sys/compat/linuxkpi/common/include/linux interrupt.h pci.h, sys/compat/linuxkpi/common/src linux_pci.c

LinuxKPI: fix argument type to lkpi_pci_msi_desc_alloc()

lkpi_pci_msi_desc_alloc() takes an unsigned int, not an int.
While here make sure the prototype is visibile in interrupt.h as
well before use to avoid -Wimplicit-function-declaration errors.

Discovered while working on a wireless driver.

MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D58879
DeltaFile
+2-1sys/compat/linuxkpi/common/include/linux/pci.h
+1-1sys/compat/linuxkpi/common/src/linux_pci.c
+1-0sys/compat/linuxkpi/common/include/linux/interrupt.h
+4-23 files

FreeBSD/src c3fa17asys/compat/linuxkpi/common/include/linux dma-mapping.h, sys/compat/linuxkpi/common/src linux_pci.c

LinuxKPI: implement dma_{alloc,free}_{noncoherent,attrs}

We use one to implement the other given direction stays unused.

This is needed by an upcoming wifi driver.

MFC after:      3 days
Reviewed by:    dumbbell
Differential Revision: https://reviews.freebsd.org/D58880
DeltaFile
+50-0sys/compat/linuxkpi/common/src/linux_pci.c
+36-0sys/compat/linuxkpi/common/include/linux/dma-mapping.h
+86-02 files