freebsd-skq/sys
Eric Joyner 3820007146 ixl(4)/ixlv(4): Stop leaking every busdma entry in receive path
From Brett:

In short, busdma maps for received packets were not being unloaded in the
interrupt handler before the packets were passed up the network stack. The fix
was to add a busdma sync and unload for the two receive maps.

This bug is significant for certain busdma providers, for example IOMMUs,
where not unloading the maps means that 1) the IOMMU mappings that allow the
NIC to DMA the received packets into host memory stay open indefinitely,
potentially violating a desired security policy, and 2) resources such as
device address space addresses and host memory for bookkeeping are never freed.

Without an IOMMU or bounce buffering enabled for the ixl device, I don't think
adding these calls will have any significant performance impact. With the
IOMMU enabled, I have noticed a performance impact on the receive side, which
is expected.

Submitted by:	Brett Gutstein <bgutstein@rice.edu>
Reviewed by:	erj@
MFC after:	1 week
2017-07-13 22:12:41 +00:00
..
amd64 Fix size argument to vm_pager_allocate(), it is in bytes, not in pages. 2017-07-13 08:23:37 +00:00
arm Support the "disable-over-current" property for imx ehci controllers. 2017-07-13 02:16:15 +00:00
arm64 arm64: Add Allwinner I2C controller to GENERIC kernel 2017-07-09 12:53:02 +00:00
boot dts: arm: Fix our local patches for H3 2017-07-09 13:56:34 +00:00
bsm Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
cam Add 4k and NCQ_TRIM_BROKEN quirks for Samsung 845 SSDs. 2017-07-13 16:56:26 +00:00
cddl fix an architectural problem introduced in r320156, ZFS ABD import 2017-06-28 13:59:20 +00:00
compat Add some functions to jiffies.h. 2017-07-13 18:27:22 +00:00
conf Fix a missing comment marker. 2017-07-13 20:04:42 +00:00
contrib Avoid including list.h in LinuxKPI headers. 2017-06-18 16:43:57 +00:00
crypto Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
ddb Include opt files in the kernel with "" instead of <>. 2017-07-10 05:08:01 +00:00
dev ixl(4)/ixlv(4): Stop leaking every busdma entry in receive path 2017-07-13 22:12:41 +00:00
fs Consistently use vop_stdpathconf() for default pathconf values. 2017-07-11 21:55:20 +00:00
gdb
geom Add GEOM::descr attribute for symmetry with GEOM::ident. 2017-07-06 08:36:14 +00:00
gnu Update DTS files from Linux 4.12 2017-07-09 13:53:32 +00:00
i386 Fix handling of one more possible exception on return to usermode. 2017-07-08 11:07:39 +00:00
isa Protect access to the AT realtime clock with its own mutex. 2017-07-12 02:42:57 +00:00
kern kvprintf %b enhancements 2017-07-12 07:30:14 +00:00
kgssapi
libkern arm64: add ".arch armv8-a+crc" to allow use of crc instructions 2017-06-08 20:06:09 +00:00
mips Make ddb(4) disassembler (x/i) use n32 register names. 2017-07-06 15:08:51 +00:00
modules Add dependency on opt_cam.h and opt_mmccam.h 2017-07-10 03:38:07 +00:00
net iflib - flib_busdma_load_mbuf_sg used isc_tx_maxsize as max semgent size. 2017-07-03 19:23:45 +00:00
net80211 net80211: initialize i_seq for A-MPDU frames. 2017-06-01 20:46:43 +00:00
netgraph Check return value from soaccept(). 2017-06-14 16:13:20 +00:00
netinet Don't overpromote values when calculating len in tcp_output(). 2017-07-05 16:10:30 +00:00
netinet6 Fix an unnecessary/incorrect check in the PKTOPT_EXTHDRCPY macro. 2017-05-30 14:50:28 +00:00
netipsec Build kdebug_secreplay() function only when IPSEC_DEBUG is defined. 2017-06-01 10:04:12 +00:00
netpfil Fix GRE over IPv6 tunnels with IPFW 2017-07-13 09:01:22 +00:00
netsmb
nfs Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfsclient Add an NFSv4.1 mount option for "use one openowner". 2017-04-13 21:54:19 +00:00
nfsserver Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nlm Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
ofed Avoid including list.h in LinuxKPI headers. 2017-06-18 16:43:57 +00:00
opencrypto Use const with some read-only buffers in opencrypto APIs. 2017-05-09 18:28:42 +00:00
powerpc Remove an obsolete comment 2017-07-05 02:20:03 +00:00
riscv Clean up MD pollution of bus_dma.h: 2017-07-01 05:35:29 +00:00
rpc Listening sockets improvements. 2017-06-08 21:30:34 +00:00
security Correct bitwise test in mac_bsdextended ugidfw_rule_valid() 2017-06-13 01:17:58 +00:00
sparc64 Clean up MD pollution of bus_dma.h: 2017-07-01 05:35:29 +00:00
sys Support multiple realtime clocks, and remove locking/sleeping restrictions 2017-07-12 02:53:54 +00:00
teken Oops, my fix for bright colors broke bright black some more (in cases 2017-03-27 10:48:28 +00:00
tests style(9): sort headers 2017-05-09 05:08:47 +00:00
tools make.conf: Add the possibility to use another DTC 2017-06-17 23:34:53 +00:00
ufs Consistently use vop_stdpathconf() for default pathconf values. 2017-07-11 21:55:20 +00:00
vm Fix loop termination in vm_map_find_min(). 2017-07-09 15:41:49 +00:00
x86 Protect access to the AT realtime clock with its own mutex. 2017-07-12 02:42:57 +00:00
xdr * limit size of buffers to RPC_MAXDATASIZE 2017-06-01 06:12:25 +00:00
xen xenstore: fix suspension when using the xenstore device 2017-03-07 09:17:48 +00:00
Makefile Remove glimpse make target added in r181432 2017-05-22 15:53:30 +00:00