mirror_ubuntu-kernels/drivers/net/ethernet/intel/i40e
Cristian Dumitrescu 7128c834d3 i40e: fix potential NULL pointer dereferencing
Currently, the function i40e_construct_skb_zc only frees the input xdp
buffer when the output skb is successfully built. On error, the
function i40e_clean_rx_irq_zc does not commit anything for the current
packet descriptor and simply exits the packet descriptor processing
loop, with the plan to restart the processing of this descriptor on
the next invocation. Therefore, on error the ring next-to-clean
pointer should not advance, the xdp i.e. *bi buffer should not be
freed and the current buffer info should not be invalidated by setting
*bi to NULL. Therefore, the *bi should only be set to NULL when the
function i40e_construct_skb_zc is successful, otherwise a NULL *bi
will be dereferenced when the work for the current descriptor is
eventually restarted.

Fixes: 3b4f0b66c2 ("i40e, xsk: Migrate to new MEM_TYPE_XSK_BUFF_POOL")
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Björn Töpel <bjorn.topel@intel.com>
Link: https://lore.kernel.org/r/20210111181138.49757-1-cristian.dumitrescu@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-01-13 19:33:28 -08:00
..
i40e_adminq_cmd.h i40e: Allow changing FEC settings on X722 if supported by FW 2020-10-13 19:44:01 -07:00
i40e_adminq.c i40e: Allow changing FEC settings on X722 if supported by FW 2020-10-13 19:44:01 -07:00
i40e_adminq.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_alloc.h
i40e_client.c intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_common.c intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_dcb_nl.c
i40e_dcb.c i40e: Fix for persistent lldp support 2019-10-25 13:38:19 -07:00
i40e_dcb.h i40e: remove unused defines 2020-06-25 22:25:13 -07:00
i40e_ddp.c i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00
i40e_debugfs.c i40e: use 16B HW descriptors instead of 32B 2020-09-14 09:45:35 -07:00
i40e_devids.h i40e: Add support for 5Gbps cards 2020-06-25 22:25:13 -07:00
i40e_diag.c
i40e_diag.h
i40e_ethtool.c i40e: Allow changing FEC settings on X722 if supported by FW 2020-10-13 19:44:01 -07:00
i40e_hmc.c i40e: Implement debug macro hw_dbg using dev_dbg 2019-09-09 11:22:20 -07:00
i40e_hmc.h i40e: remove unused defines 2020-06-25 22:25:13 -07:00
i40e_lan_hmc.c treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
i40e_lan_hmc.h
i40e_main.c i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs 2020-12-17 12:55:44 -08:00
i40e_nvm.c i40e: Fix for persistent lldp support 2019-10-25 13:38:19 -07:00
i40e_osdep.h i40e: remove unused defines 2020-06-25 22:25:13 -07:00
i40e_prototype.h i40e: Make i40e_shutdown_adminq() return void 2020-05-28 20:19:47 -07:00
i40e_ptp.c intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_register.h i40e: detect and log info about pre-recovery mode 2020-06-25 22:25:13 -07:00
i40e_status.h
i40e_trace.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_txrx_common.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_txrx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-12-11 22:29:38 -08:00
i40e_txrx.h i40e: Use batched xsk Tx interfaces to increase performance 2020-11-17 22:07:40 +01:00
i40e_type.h i40e: Allow changing FEC settings on X722 if supported by FW 2020-10-13 19:44:01 -07:00
i40e_virtchnl_pf.c i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs 2020-12-17 12:55:44 -08:00
i40e_virtchnl_pf.h i40e: remove unused defines 2020-06-25 22:25:13 -07:00
i40e_xsk.c i40e: fix potential NULL pointer dereferencing 2021-01-13 19:33:28 -08:00
i40e_xsk.h i40e: Use batched xsk Tx interfaces to increase performance 2020-11-17 22:07:40 +01:00
i40e.h i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs 2020-12-17 12:55:44 -08:00
Makefile i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00