linux_dsm_epyc7002/drivers/net/ethernet/sfc
Jon Cooper 0ccb998bf4 sfc: fix filter_id misinterpretation in edge case
On EF10, hardware filter IDs are 13 bits, but in some places we store
 32-bit "full filter IDs" in which higher order bits encode the filter
 match-priority.  This could cause a filter to have a full filter ID of
 0xffff, which is also the value EFX_EF10_FILTER_ID_INVALID which we use
 in 16-bit "short" filter IDs (without match-priority bits).  This would
 occur if the hardware filter ID was 0x1fff and the match-priority was 7.
Unfortunately, some code that checks for EFX_EF10_FILTER_ID_INVALID can
 be called on full filter IDs, and will WARN_ON if this ever happens.
So, since we have plenty of spare bits in the full filter ID, this patch
 shifts the priority bits left one bit when constructing the full filter
 IDs, ensuring that the 0x2000 bit of a full filter ID will always be 0
 and thus no full filter ID can ever equal EFX_EF10_FILTER_ID_INVALID.

This patch also replaces open-coded full<->short filter ID conversions
 with calls to functions, thus keeping the definition of the full filter
 ID format in one place.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-17 15:29:39 -05:00
..
falcon sfc-falcon: get rid of custom busy polling code 2017-02-03 09:56:50 -05:00
bitfield.h sfc: process RX event inner checksum flags 2017-02-09 16:47:53 -05:00
ef10_regs.h sfc: Update EF10 register definitions 2016-11-18 11:55:37 -05:00
ef10_sriov.c sfc: Replace memset with eth_zero_addr 2017-01-16 11:46:54 -05:00
ef10_sriov.h sfc: support ndo_get_phys_port_id even when !CONFIG_SFC_SRIOV 2017-01-10 14:16:17 -05:00
ef10.c sfc: fix filter_id misinterpretation in edge case 2017-02-17 15:29:39 -05:00
efx.c sfc: only fall back to a lower interrupt mode if it is supported 2017-02-14 12:43:18 -05:00
efx.h sfc: set interrupt moderation via MCDI 2016-08-12 20:42:20 -07:00
enum.h sfc: remove RESET_TYPE_RX_RECOVERY 2016-12-01 15:39:38 -05:00
ethtool.c sfc: process RX event inner checksum flags 2017-02-09 16:47:53 -05:00
farch_regs.h
farch.c sfc: read back RX hash config from the NIC when querying it with ethtool -x 2017-01-17 15:49:52 -05:00
filter.h sfc: insert catch-all filters for encapsulated traffic 2017-01-27 11:59:31 -05:00
io.h
Kconfig ethernet: sfc: Add Kconfig entry for vendor Solarflare 2016-12-20 14:19:38 -05:00
Makefile sfc: separate out SFC4000 ("Falcon") support into new sfc-falcon driver 2016-11-30 10:16:58 -05:00
mcdi_mon.c sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead 2016-12-03 16:11:00 -05:00
mcdi_pcol.h sfc: update mcdi_pcol definitions for MC_CMD_SET_TUNNEL_ENCAP_UDP_PORTS 2017-02-09 16:47:53 -05:00
mcdi_port.c net: sfc: use new api ethtool_{get|set}_link_ksettings 2016-12-17 21:31:41 -05:00
mcdi.c sfc: configure UDP tunnel offload ports 2017-02-09 16:47:53 -05:00
mcdi.h sfc: configure UDP tunnel offload ports 2017-02-09 16:47:53 -05:00
mtd.c
net_driver.h sfc: MSI-X is the only interrupt mode for EF10 VFs 2017-02-14 12:43:18 -05:00
nic.c sfc: work around TRIGGER_INTERRUPT command not working on SFC9140 2016-08-26 21:43:52 -07:00
nic.h sfc: configure UDP tunnel offload ports 2017-02-09 16:47:53 -05:00
ptp.c sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead 2016-12-03 16:11:00 -05:00
rx.c sfc: set csum_level for encapsulated packets 2017-02-09 16:47:53 -05:00
selftest.c sfc: work around TRIGGER_INTERRUPT command not working on SFC9140 2016-08-26 21:43:52 -07:00
selftest.h sfc: work around TRIGGER_INTERRUPT command not working on SFC9140 2016-08-26 21:43:52 -07:00
siena_sriov.c
siena_sriov.h
siena.c sfc: MSI-X is the only interrupt mode for EF10 VFs 2017-02-14 12:43:18 -05:00
sriov.c sfc: support ndo_get_phys_port_id even when !CONFIG_SFC_SRIOV 2017-01-10 14:16:17 -05:00
sriov.h sfc: support ndo_get_phys_port_id even when !CONFIG_SFC_SRIOV 2017-01-10 14:16:17 -05:00
tx_tso.c sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead 2016-12-03 16:11:00 -05:00
tx.c sfc: get PIO buffer size from the NIC 2017-01-16 14:00:46 -05:00
tx.h sfc: Firmware-Assisted TSO version 2 2016-11-18 11:55:38 -05:00
vfdi.h
workarounds.h sfc: separate out SFC4000 ("Falcon") support into new sfc-falcon driver 2016-11-30 10:16:58 -05:00