freebsd-dev/sys/dev
Eric Joyner 37761e2eda ixl/iavf(4): Fix TSO offloads when TXCSUM is disabled
From Jake:
The iflib stack does not disable TSO automatically when TXCSUM is
disabled, instead assuming that the driver will correctly handle TSOs
even when CSUM_IP is not set.

This results in iflib calling ixl_isc_txd_encap with packets which have
CSUM_IP_TSO, but do not have CSUM_IP or CSUM_IP_TCP set. Because of
this, ixl_tx_setup_offload will not setup the IPv4 checksum offloading.

This results in bad TSO packets being sent if a user disables TXCSUM
without disabling TSO.

Fix this by updating the ixl_tx_setup_offload function to check both
CSUM_IP and CSUM_IP_TSO when deciding whether to enable IPv4 checksums.

Once this is corrected, another issue for TSO packets is revealed. The
driver sets IFLIB_NEED_ZERO_CSUM in order to enable a work around that
causes the ip->sum field to be zero'd. This is necessary for ixl
hardware to correctly perform TSOs.

However, if TXCSUM is disabled, then the work around is not enabled, as
CSUM_IP will not be set when the iflib stack checks to see if it should
clear the sum field.

Fix this by adding IFLIB_TSO_INIT_IP to the iflib flags for the iavf and
ixl interface files.

It is uncertain if the hardware needs IFLIB_NEED_ZERO_CSUM for any other
case besides TSO, so leave that flag assigned. It may be worth
investigating to see if this work around flag could be disabled in
a future change.

Once both of these changes are made, the ixl driver should correctly
offload TSO packets when TSO4 offload is enabled, regardless of whether
TXCSUM is enabled or disabled.

Submitted by:	Jacob Keller <jacob.e.keller@intel.com>
Reviewed by:	erj@, shurd@
MFC after:	0 days
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D17900
2018-11-08 19:10:43 +00:00
..
aac Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
aacraid Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
acpi_support Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
acpica Make battery emptying rate available as sysctl variable. 2018-10-30 00:19:44 +00:00
adb
adlink Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
ae Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
age Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
agp Eliminate the arena parameter to kmem_free(). Implicitly this corrects an 2018-08-25 19:38:08 +00:00
ahci Implement ability to turn on/off PHYs for AHCI devices. 2018-11-03 00:37:51 +00:00
aic7xxx
al_eth Use ip/ipv6 structures in al_eth only if they are supported 2018-08-28 17:09:41 +00:00
alc Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
ale Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
alpm
altera
amd_ecc_inject Eliminate the arena parameter to kmem_free(). Implicitly this corrects an 2018-08-25 19:38:08 +00:00
amdgpio Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
amdpm
amdsbwd
amdsmb Update AMDSMB to use PCI_MATCH 2018-07-07 15:55:52 +00:00
amdsmn Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
amdtemp Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
amr Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
an Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
arcmsr
asmc Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
ata Reset indentiation of ata_suspend() such that its clear we fall through 2018-07-03 16:17:59 +00:00
ath ath: Minor style cleanups 2018-08-10 13:38:23 +00:00
atkbdc evdev: Use console lock as evdev lock for all supported keyboard drivers. 2018-10-27 20:22:41 +00:00
auxio
axgbe
bce Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
beri
bfe Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
bge Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
bhnd
bktr Don't use generic PCI_VENDOR and PCI_PRODUCT macros. Prefix them with 2018-06-24 19:01:01 +00:00
bm Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
bnxt Assorted TSO fixes for em(4)/iflib(9) and dead code removal: 2018-07-15 19:04:23 +00:00
bvm
bwi Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
bwn Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
bxe Add support for Error Recovery 2018-10-15 18:39:33 +00:00
cadence
cardbus
cas Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
ce
cesa OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
cfe
cfi Remove kernel support for armeb 2018-07-17 23:23:45 +00:00
chromebook_platform
ciss Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
cmx
coretemp Quiet coretemp probe 2018-06-15 02:28:36 +00:00
cp
cpuctl amd64: flush L1 data cache on syscall return with an error. 2018-10-20 23:17:24 +00:00
cpufreq cpufreq_dt: Add operating-points-v2 support 2018-07-19 11:31:49 +00:00
cs Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
ctau
cx Fix misspellings of transmitter/transmitted 2018-08-10 20:37:32 +00:00
cxgb Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
cxgbe Treat the memory lengths for CHELSIO_T4_GET_MEM as unsigned. 2018-11-06 22:33:36 +00:00
cy
cyapa
dc Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
dcons
de Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
dme Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
dpaa dpaa: Mark BMan and QMan as earlier driver modules 2018-10-23 01:56:52 +00:00
dpms
drm Add big, nasty abandonware tags to this code. 2018-08-28 14:46:55 +00:00
drm2 Add updating entry for DRM 2018-10-20 19:14:46 +00:00
dwc
e1000 em/igb/ix(4): Port two Tx/Rx fixes made to ixl in r339338 2018-10-14 05:09:43 +00:00
ed Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
efidev Assign to correct structure members. 2018-09-04 19:28:46 +00:00
ena Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
ep Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
esp
et Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
etherswitch
evdev evdev: disable evdev if it is invoked from KDB or panic context 2018-10-27 21:04:34 +00:00
ex Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
exca
extres regulator: Use bool values instead of 0/1 2018-09-04 19:18:55 +00:00
fb
fdc Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
fdt fdt_pinctrl: Add some TSLOG annotations 2018-07-19 11:41:53 +00:00
fe Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
ffec Fix possible NULL pointer dereference in ffec_alloc_mbufcl(). 2018-09-21 13:44:05 +00:00
filemon Add const to input-only char * arguments. 2018-11-02 20:50:22 +00:00
firewire Use https over http for FreeBSD pages 2018-07-27 10:40:48 +00:00
flash The device ID tables are used only within the driver, make them static so 2018-07-29 16:55:28 +00:00
fxp Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
gem Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
glxiic
glxsb Remove the Yarrow PRNG algorithm option in accordance with due notice 2018-08-26 12:51:46 +00:00
gpio Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
gxemul
hdmi
hifn Remove the Yarrow PRNG algorithm option in accordance with due notice 2018-08-26 12:51:46 +00:00
hme
hpt27xx
hptiop
hptmv
hptnr
hptrr
hwpmc hwpmc: limit wait for user callchain collection to 1 tick 2018-11-05 08:11:16 +00:00
hyperv Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
ic
ichiic Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
ichsmb
ichwd ichwd: add support for TCO watchdog timer in Lewisburg PCH (C620) 2018-10-22 14:44:44 +00:00
ida Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
if_ndis
iicbus Export the eeprom device size via readonly sysctl. Also export the write 2018-08-13 23:53:11 +00:00
iir
imcsmb
intel Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
intpm Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
io
ioat Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
ipmi Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
ips
ipw Fix ipw_start(), where logic was reverted in r287197. 2018-10-23 12:53:09 +00:00
isci
iscsi
iscsi_initiator
iser
isl
ismt
isp Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
ispfw
iwi
iwm Fix the MODULE_PNP_INFO() for iwm(4) where I got the bus and module 2018-10-01 10:44:33 +00:00
iwn Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
ixgbe em/igb/ix(4): Port two Tx/Rx fixes made to ixl in r339338 2018-10-14 05:09:43 +00:00
ixl ixl/iavf(4): Fix TSO offloads when TXCSUM is disabled 2018-11-08 19:10:43 +00:00
jedec_dimm Remove jedec_ts(4) 2018-08-01 08:24:34 +00:00
jme
kbd evdev: Remove evdev.ko linkage dependency on kbd driver 2018-08-13 19:05:53 +00:00
kbdmux evdev: Use console lock as evdev lock for all supported keyboard drivers. 2018-10-27 20:22:41 +00:00
ksyms
le
led
lge
liquidio Eliminate the arena parameter to kmem_free(). Implicitly this corrects an 2018-08-25 19:38:08 +00:00
malo
mbox
mc146818
md md: use prestaged mfs_root 2018-06-07 13:57:34 +00:00
mdio
mem
mfi Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
mge
mii Recognize ICS1893C PHYs. 2018-08-07 17:13:42 +00:00
mk48txx
mlx
mlx4 Add missing steering rules for virtual function, VF, in mlx4en(4) driver. 2018-10-08 14:52:21 +00:00
mlx5 mlx5: Notify user that the ConnectX-6 shutdown its port due to power limitation 2018-10-22 10:38:38 +00:00
mly De-spl mly(4). 2018-08-21 10:08:12 +00:00
mmc Avoid uninitialized read of ext_csd. 2018-09-06 21:24:14 +00:00
mmcnull
mn
mpr Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
mps Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
mpt
mrsas Use plain atomic_{add,subtract} when that's sufficient. 2018-11-06 17:32:25 +00:00
msk
mthca
mvs Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
mwl
mxge mxge: replace 65536 with IP_MAXPACKET in tso settings. 2018-07-05 02:43:10 +00:00
my Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
nand Remove Atmel AT91RM9200 and AT91SAM9 support. 2018-07-27 18:28:22 +00:00
nctgpio
neta Disable the auto negotiation if the port is set to fixed-link. 2018-08-14 18:58:16 +00:00
netfpga10g/nf10bmac
netmap Remove redundant redeclaration of netmap_vp_reg(). 2018-10-24 14:14:49 +00:00
nfe
nfsmb
nge
nmdm
ntb Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
null
nvd
nvdimm Initializer error variable in nvdimm_spa_uio(). 2018-10-23 17:53:35 +00:00
nvme Put a workaround in for command timeout malfunctioning 2018-10-26 14:27:37 +00:00
nvram
nvram2env
oce Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
ocs_fc Use the right buffer size when calling snprintf(). 2018-07-22 18:31:15 +00:00
ofw Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
otus
ow
pbio
pccard Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
pccbb Add PNP info to PCI attachments of cbb, cxgb, ida, iwn, ixl, ixlv, 2018-09-26 17:12:30 +00:00
pcf
pci Centralize compat support for PCIOCGETCONF. 2018-09-27 21:08:32 +00:00
pcn Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
pms
powermac_nvram
ppbus
ppc
proto
psci Fix a typo on the PSCI smc call wrapper. 2018-08-14 13:56:49 +00:00
pst
pty
puc Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
qlnx/qlnxe Remove support for QLNX_RCV_IN_TASKQ - i.e., Rx only in TaskQ. 2018-07-25 02:36:55 +00:00
qlxgb
qlxgbe
qlxge
quicc
ral Remove bogus spaces. 2018-09-26 19:41:00 +00:00
random random(4): Match enabled sources mask to build options 2018-10-27 15:09:35 +00:00
rc
rccgpio
re
rl Remove bogus spaces. 2018-09-26 19:41:00 +00:00
rndtest Remove the Yarrow PRNG algorithm option in accordance with due notice 2018-08-26 12:51:46 +00:00
rp
rt
rtwn rtwn(4): decode some bit fields + merge duplicate code. 2018-06-19 00:38:28 +00:00
safe Remove the Yarrow PRNG algorithm option in accordance with due notice 2018-08-26 12:51:46 +00:00
sbni Copy out from kernel to data, not the other way around. 2018-08-13 21:53:18 +00:00
scc
sdhci Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
sec OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
sf Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
sfxge
sge
siis
sio
sis
sk Use https over http for FreeBSD pages 2018-07-27 10:40:48 +00:00
smartpqi Re-unbreak smartpqi(4) GCC build 2018-07-13 22:49:48 +00:00
smbus
smc
sn Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
snp
sound Don't read the USB audio sync endpoint when we don't use it to save 2018-11-08 12:46:47 +00:00
speaker
spibus Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
ste
stge
sym Remove the long obsolete SYM_SETUP_LP_PROBE_MAP option. It's not been 2018-10-22 02:36:31 +00:00
syscons Remove the Yarrow PRNG algorithm option in accordance with due notice 2018-08-26 12:51:46 +00:00
tcp_log
tdfx
terasic
ti
tl Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
tpm Distinguish _CID match and _HID match and make lower priority probe 2018-10-26 00:05:46 +00:00
trm
tsec
twa
twe
tws
tx Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
txp Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
uart Add support for the UART device found in lowRISC system-on-a-chip. 2018-10-12 15:19:41 +00:00
ubsec Remove the Yarrow PRNG algorithm option in accordance with due notice 2018-08-26 12:51:46 +00:00
usb Sometimes the complete split packet may be queued too early and the 2018-11-07 08:25:44 +00:00
veriexec Device for user space to interface with MAC/veriexec. 2018-06-20 00:48:46 +00:00
vge
viapm
viawd
videomode
virtio Split out the virtio mmio FDT attachment and add an ACPI attachment. 2018-10-21 15:43:20 +00:00
vkbd
vmware
vnic Fix vnic fallback PHY name matching after r334880. 2018-07-14 16:06:53 +00:00
vr
vt Remove the Yarrow PRNG algorithm option in accordance with due notice 2018-08-26 12:51:46 +00:00
vte
vx Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
watchdog
wb Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
wbwd
wi
wpi
wtap
xdma Eliminate kmem_alloc_contig()'s unused arena parameter. 2018-08-20 15:57:27 +00:00
xe Deprecate a number of less used 10 and 10/100 Ethernet devices. 2018-10-25 04:10:41 +00:00
xen xen: temporary disable SMAP when forwarding hypercalls from user-space 2018-09-13 07:15:02 +00:00
xilinx
xl Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00