bianbu-linux-6.6/drivers/net/ethernet/intel/i40e
Magnus Karlsson ae4393dfd4 i40e: fix broken XDP support
Commit 12738ac475 ("i40e: Fix sparse errors in i40e_txrx.c") broke
XDP support in the i40e driver. That commit was fixing a sparse error
in the code by introducing a new variable xdp_res instead of
overloading this into the skb pointer. The problem is that the code
later uses the skb pointer in if statements and these where not
extended to also test for the new xdp_res variable. Fix this by adding
the correct tests for xdp_res in these places.

The skb pointer was used to store the result of the XDP program by
overloading the results in the error pointer
ERR_PTR(-result). Therefore, the allocation failure test that used to
only test for !skb now need to be extended to also consider !xdp_res.

i40e_cleanup_headers() had a check that based on the skb value being
an error pointer, i.e. a result from the XDP program != XDP_PASS, and
if so start to process a new packet immediately, instead of populating
skb fields and sending the skb to the stack. This check is not needed
anymore, since we have added an explicit test for xdp_res being set
and if so just do continue to pick the next packet from the NIC.

Fixes: 12738ac475 ("i40e: Fix sparse errors in i40e_txrx.c")
Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
Tested-by: Jesper Dangaard Brouer <brouer@redhat.com>
Reported-by: Jesper Dangaard Brouer <brouer@redhat.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2021-05-07 09:35:38 -07:00
..
i40e.h i40e: use minimal admin queue for kdump 2021-04-23 09:03:56 -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_adminq_cmd.h i40e: Add hardware configuration for software based DCB 2021-02-10 14:28:39 -08:00
i40e_alloc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_client.c intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_common.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_dcb.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_dcb.h i40e: Add hardware configuration for software based DCB 2021-02-10 14:28:39 -08:00
i40e_dcb_nl.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_ddp.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_debugfs.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-09 20:48:35 -07:00
i40e_devids.h i40e: Add support for 5Gbps cards 2020-06-25 22:25:13 -07:00
i40e_diag.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_diag.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_ethtool.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-09 20:48:35 -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 intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_lan_hmc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_main.c i40e: use minimal admin queue for kdump 2021-04-23 09:03:56 -07:00
i40e_nvm.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_osdep.h i40e: remove unused defines 2020-06-25 22:25:13 -07:00
i40e_prototype.h i40e: Add hardware configuration for software based DCB 2021-02-10 14:28:39 -08:00
i40e_ptp.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_register.h i40e: Add EEE status getting & setting implementation 2021-02-10 14:28:40 -08:00
i40e_status.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_trace.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_txrx.c i40e: fix broken XDP support 2021-05-07 09:35:38 -07:00
i40e_txrx.h i40e: store the result of i40e_rx_offset() onto i40e_ring 2021-02-12 10:35:13 -08:00
i40e_txrx_common.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_type.h i40e: VLAN field for flow director 2021-02-10 14:28:40 -08:00
i40e_virtchnl_pf.c i40e: refactor repeated link state reporting code 2021-04-23 09:03:56 -07:00
i40e_virtchnl_pf.h i40e: Revert "i40e: don't report link up for a VF who hasn't enabled queues" 2021-02-01 13:18:31 -08:00
i40e_xsk.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-09 20:48:35 -07:00
i40e_xsk.h i40e: Use batched xsk Tx interfaces to increase performance 2020-11-17 22:07:40 +01:00
Makefile i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00