linux_dsm_epyc7002/drivers/net/ethernet
Or Gerlitz 3c37745ec6 net/mlx5e: Properly deal with encap flows add/del under neigh update
Currently, the encap action offload is handled in the actions parse
function and not in mlx5e_tc_add_fdb_flow() where we deal with all
the other aspects of offloading actions (vlan, modify header) and
the rule itself.

When the neigh update code (mlx5e_tc_encap_flows_add()) recreates the
encap entry and offloads the related flows, we wrongly call again into
mlx5e_tc_add_fdb_flow(), this for itself would cause us to handle
again the offloading of vlans and header re-write which puts things
in non consistent state and step on freed memory (e.g the modify
header parse buffer which is already freed).

Since on error, mlx5e_tc_add_fdb_flow() detaches and may release the
encap entry, it causes a corruption at the neigh update code which goes
over the list of flows associated with this encap entry, or double free
when the tc flow is later deleted by user-space.

When neigh update (mlx5e_tc_encap_flows_del()) unoffloads the flows related
to an encap entry which is now invalid, we do a partial repeat of the eswitch
flow removal code which is wrong too.

To fix things up we do the following:

(1) handle the encap action offload in the eswitch flow add function
    mlx5e_tc_add_fdb_flow() as done for the other actions and the rule itself.

(2) modify the neigh update code (mlx5e_tc_encap_flows_add/del) to only
    deal with the encap entry and rules delete/add and not with any of
    the other offloaded actions.

Fixes: 232c001398 ('net/mlx5e: Add support to neighbour update flow')
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Reviewed-by: Paul Blakey <paulb@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2017-10-26 00:47:27 -07:00
..
3com net: 3c59x: constify eisa_device_id 2017-08-19 17:13:41 -07:00
8390 net: ethernet: ax88796: make mdiobb_ops const 2017-08-22 14:20:54 -07:00
adaptec
adi net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
aeroflex
agere
alacritech
allwinner
alteon
altera
amazon net: ena: fix wrong max Tx/Rx queues on ethtool 2017-10-19 12:49:15 +01:00
amd dma-mapping updates for 4.14: 2017-09-12 13:30:06 -07:00
apm drivers: net: xgene: Remove return statement from void function 2017-09-05 14:58:25 -07:00
apple
aquantia net: aquantia: Bad udp rate on default interrupt coalescing 2017-10-21 12:32:24 +01:00
arc net: arc_emac: Add support for ndo_do_ioctl net_device_ops operation 2017-08-03 15:14:34 -07:00
atheros
aurora
broadcom bnxt_en: Fix possible corruption in DCB parameters from firmware. 2017-10-14 18:51:51 -07:00
brocade
cadence net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
calxeda
cavium liquidio: fix timespec64_to_ns typo 2017-10-13 10:18:38 -07:00
chelsio cxgb4: Ignore MPS_TX_INT_CAUSE[Bubble] for T6 2017-09-05 14:27:50 -07:00
cirrus
cisco
davicom davicom: Display proper debug level up to 6 2017-09-08 20:53:10 -07:00
dec net: tulip: Constify tulip_tbl 2017-09-08 20:53:10 -07:00
dlink
emulex be2net: fix TSO6/GSO issue causing TX-stall on Lancer/BEx 2017-09-13 09:28:18 -07:00
ezchip
faraday Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-01 17:42:05 -07:00
freescale net: fec: return IRQ_HANDLED if fec_ptp_check_pps_event handled it 2017-09-20 15:47:31 -07:00
fujitsu
hisilicon net: hns3: Fix an error handling path in 'hclge_rss_init_hw()' 2017-10-01 22:57:24 -07:00
hp net: hp100: constify eisa_device_id 2017-08-19 17:13:41 -07:00
huawei hinic: don't build the module by default 2017-08-28 21:39:52 -07:00
i825xx dma-mapping updates for 4.14: 2017-09-12 13:30:06 -07:00
ibm ibmvnic: Fix calculation of number of TX header descriptors 2017-10-18 12:20:39 +01:00
intel i40e: Fix memory leak related filter programming status 2017-10-10 08:04:36 -07:00
marvell net: mvpp2: do not call txq_done from the Tx path when Tx irqs are used 2017-10-24 18:34:10 +09:00
mediatek net-next: mediatek: bring up QDMA RX ring 0 2017-08-09 22:45:36 -07:00
mellanox net/mlx5e: Properly deal with encap flows add/del under neigh update 2017-10-26 00:47:27 -07:00
micrel
microchip
moxa net: moxa: Add spaces preferred around that '{+,-}' 2017-07-29 14:02:07 -07:00
myricom
natsemi
neterion
netronome nfp: refuse offloading filters that redirects to upper devices 2017-10-26 10:07:14 +09:00
nuvoton w90p910_ether: include linux/interrupt.h 2017-09-12 20:59:19 -07:00
nvidia forcedeth: replace init_timer_deferrable with setup_deferrable_timer 2017-08-11 14:25:35 -07:00
nxp
oki-semi
packetengines
pasemi
qlogic qed: remove unnecessary call to memset 2017-09-15 14:02:05 -07:00
qualcomm net: qcom/emac: specify the correct size when mapping a DMA buffer 2017-09-25 16:34:29 -07:00
rdc
realtek r8169: only enable PCI wakeups when WOL is active 2017-10-11 15:26:17 -07:00
renesas net: sh_eth: constify platform_device_id 2017-08-13 20:12:23 -07:00
rocker rocker: fix rocker_tlv_put_* functions for KASAN 2017-09-25 20:18:27 -07:00
samsung net: sxgbe: check memory allocation failure 2017-08-25 20:07:07 -07:00
seeq sgiseeq: switch to dma_alloc_attrs 2017-08-29 10:02:54 +02:00
sfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-15 20:23:23 -07:00
sgi
silan
sis
smsc net: smsc911x: Quieten netif during suspend 2017-09-15 14:24:49 -07:00
stmicro stmmac: Don't access tx_q->dirty_tx before netif_tx_lock 2017-10-22 03:24:43 +01:00
sun Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-01 10:07:50 -07:00
synopsys
tehuti
ti net: ethernet: ti: netcp_core: no need in netif_napi_del 2017-09-08 20:53:10 -07:00
tile net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
toshiba net: tc35815: fix spelling mistake: "Intterrupt" -> "Interrupt" 2017-07-29 15:22:08 -07:00
tundra
via dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
wiznet
xilinx
xircom ethernet: xircom: small clean up in setup_xirc2ps_cs() 2017-08-22 10:30:00 -07:00
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c
jme.h
Kconfig net-next/hinic: Initialize hw interface 2017-08-22 10:48:52 -07:00
korina.c
lantiq_etop.c
Makefile net-next/hinic: Initialize hw interface 2017-08-22 10:48:52 -07:00
netx-eth.c