linux/drivers/net/ethernet/intel/ice
Marcin Szycik 5c07be96d8 ice: Avoid setting default Rx VSI twice in switchdev setup
As part of switchdev environment setup, uplink VSI is configured as
default for both Tx and Rx. Default Rx VSI is also used by promiscuous
mode. If promisc mode is enabled and an attempt to enter switchdev mode
is made, the setup will fail because Rx VSI is already configured as
default (rule exists).

Reproducer:
  devlink dev eswitch set $PF1_PCI mode switchdev
  ip l s $PF1 up
  ip l s $PF1 promisc on
  echo 1 > /sys/class/net/$PF1/device/sriov_numvfs

In switchdev setup, use ice_set_dflt_vsi() instead of plain
ice_cfg_dflt_vsi(), which avoids repeating setting default VSI for Rx if
it's already configured.

Fixes: 50d62022f4 ("ice: default Tx rule instead of to queue")
Reported-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>
Closes: https://lore.kernel.org/intel-wired-lan/PH0PR11MB50138B635F2E5CEB7075325D961F2@PH0PR11MB5013.namprd11.prod.outlook.com
Reviewed-by: Martyna Szapar-Mudlaw <martyna.szapar-mudlaw@linux.intel.com>
Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://patch.msgid.link/20250224190647.3601930-3-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-02-25 19:09:36 -08:00
..
devlink ice: Add check for devm_kzalloc() 2025-02-01 16:57:50 -08:00
Makefile ice: add Tx hang devlink health reporter 2024-12-17 11:32:46 -08:00
ice.h ice: add Tx hang devlink health reporter 2024-12-17 11:32:46 -08:00
ice_adapter.c ice: Use ice_adapter for PTP shared data instead of auxdev 2024-10-01 11:11:38 -07:00
ice_adapter.h ice: Use ice_adapter for PTP shared data instead of auxdev 2024-10-01 11:11:38 -07:00
ice_adminq_cmd.h ice: remove invalid parameter of equalizer 2025-01-24 10:49:42 -08:00
ice_arfs.c
ice_arfs.h
ice_base.c ice: move prefetch enable to ice_setup_rx_ctx 2024-12-11 20:13:01 -08:00
ice_base.h
ice_cgu_regs.h ice: Add support for E825-C TS PLL handling 2024-06-01 15:51:51 -07:00
ice_common.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-01-16 10:34:59 -08:00
ice_common.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-01-16 10:34:59 -08:00
ice_controlq.c ice: Report NVM version numbers on mismatch during load 2024-08-26 09:47:13 -07:00
ice_controlq.h ice: remove unnecessary control queue cmd_buf arrays 2024-08-26 09:46:14 -07:00
ice_dcb.c
ice_dcb.h
ice_dcb_lib.c ice: add new VSI type for subfunctions 2024-09-06 10:52:19 -07:00
ice_dcb_lib.h
ice_dcb_nl.c
ice_dcb_nl.h
ice_ddp.c ice: support optional flags in signature segment header 2024-11-13 10:30:09 -08:00
ice_ddp.h ice: support optional flags in signature segment header 2024-11-13 10:30:09 -08:00
ice_debugfs.c ice: ensure the copied buf is NUL terminated 2024-04-25 19:23:11 -07:00
ice_devids.h ice: update E830 device ids and comments 2024-05-06 09:18:48 -07:00
ice_dpll.c Kthreads affinity follow either of 4 existing different patterns: 2025-01-21 17:10:05 -08:00
ice_dpll.h ice: add callbacks for Embedded SYNC enablement on dpll pins 2024-08-26 19:21:14 -07:00
ice_eswitch.c ice: Avoid setting default Rx VSI twice in switchdev setup 2025-02-25 19:09:36 -08:00
ice_eswitch.h ice: rename devlink_port.[ch] to port.[ch] 2024-12-17 09:32:08 -08:00
ice_eswitch_br.c ice: Flush FDB entries before reset 2024-10-08 14:08:19 -07:00
ice_eswitch_br.h ice: Flush FDB entries before reset 2024-10-08 14:08:19 -07:00
ice_ethtool.c ice: remove invalid parameter of equalizer 2025-01-24 10:49:42 -08:00
ice_ethtool.h ice: remove invalid parameter of equalizer 2025-01-24 10:49:42 -08:00
ice_ethtool_fdir.c ice: change q_index variable type to s16 to store -1 value 2024-11-04 13:09:33 -08:00
ice_fdir.c ice: Implement 'flow-type ether' rules 2024-04-12 10:34:24 -07:00
ice_fdir.h ice: change q_index variable type to s16 to store -1 value 2024-11-04 13:09:33 -08:00
ice_flex_pipe.c ice: enable FDIR filters from raw binary patterns for VFs 2024-08-13 14:51:29 -07:00
ice_flex_pipe.h ice: Cleanup unused declarations 2024-10-08 15:22:32 -07:00
ice_flex_type.h ice: Add support for PFCP hardware offload in switchdev 2024-04-01 10:49:29 +01:00
ice_flow.c ice: enable FDIR filters from raw binary patterns for VFs 2024-08-13 14:51:29 -07:00
ice_flow.h ice: enable FDIR filters from raw binary patterns for VFs 2024-08-13 14:51:29 -07:00
ice_fltr.c
ice_fltr.h
ice_fw_update.c ice: support FW Recovery Mode 2025-01-16 13:05:06 -08:00
ice_fw_update.h ice: Add tx_scheduling_layers devlink param 2024-04-22 13:05:19 -07:00
ice_fwlog.c
ice_fwlog.h
ice_gnss.c treewide: Introduce kthread_run_worker[_on_cpu]() 2025-01-08 18:15:03 +01:00
ice_gnss.h
ice_hw_autogen.h Merge branch 'net-introduce-tx-h-w-shaping-api' 2024-10-10 08:32:46 -07:00
ice_hwmon.c ice: use proper macro for testing bit 2024-07-03 19:36:52 -07:00
ice_hwmon.h
ice_idc.c
ice_idc_int.h
ice_irq.c
ice_irq.h
ice_lag.c Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 2024-03-28 22:50:22 -07:00
ice_lag.h ice: control default Tx rule in lag 2024-03-25 13:08:05 -07:00
ice_lan_tx_rx.h ice: reduce size of queue context fields 2024-12-11 20:13:00 -08:00
ice_lib.c ice: support FW Recovery Mode 2025-01-16 13:05:06 -08:00
ice_lib.h ice: support FW Recovery Mode 2025-01-16 13:05:06 -08:00
ice_main.c Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 2025-01-17 19:45:35 -08:00
ice_nvm.c ice: fix reads from NVM Shadow RAM on E830 and E825-C devices 2024-06-05 19:27:55 -07:00
ice_nvm.h ice: Add tx_scheduling_layers devlink param 2024-04-22 13:05:19 -07:00
ice_osdep.h ice: stop intermixing AQ commands/responses debug dumps 2024-08-26 09:40:44 -07:00
ice_parser.c ice: add API for parser profile initialization 2024-08-13 14:51:28 -07:00
ice_parser.h ice: fix ice_parser_rt::bst_key array size 2025-01-24 10:49:30 -08:00
ice_parser_rt.c ice: fix ice_parser_rt::bst_key array size 2025-01-24 10:49:30 -08:00
ice_pf_vsi_vlan_ops.c
ice_pf_vsi_vlan_ops.h
ice_protocol_type.h ice: Remove unused members from switch API 2024-07-11 09:40:56 -07:00
ice_ptp.c Networking changes for 6.14. 2025-01-22 08:28:57 -08:00
ice_ptp.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-01-16 10:34:59 -08:00
ice_ptp_consts.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-01-16 10:34:59 -08:00
ice_ptp_hw.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-01-16 10:34:59 -08:00
ice_ptp_hw.h ice: Add in/out PTP pin delays 2025-01-14 14:37:34 -08:00
ice_repr.c ice: rename devlink_port.[ch] to port.[ch] 2024-12-17 09:32:08 -08:00
ice_repr.h ice: check if SF is ready in ethtool ops 2024-09-06 11:01:24 -07:00
ice_sbq_cmd.h ice: Introduce ETH56G PHY model for E825C products 2024-06-01 15:51:51 -07:00
ice_sched.c ice: Adjust over allocation of memory in ice_sched_add_root_node() and ice_sched_add_node() 2024-08-26 09:49:57 -07:00
ice_sched.h ice: Support 5 layer topology 2024-04-22 13:05:19 -07:00
ice_sf_eth.c ice: rename devlink_port.[ch] to port.[ch] 2024-12-17 09:32:08 -08:00
ice_sf_eth.h ice: subfunction activation and base devlink ops 2024-09-06 11:01:24 -07:00
ice_sf_vsi_vlan_ops.c ice: basic support for VLAN in subfunctions 2024-09-06 11:01:24 -07:00
ice_sf_vsi_vlan_ops.h ice: basic support for VLAN in subfunctions 2024-09-06 11:01:24 -07:00
ice_sriov.c ice: Fix deinitializing VF in error path 2025-02-25 19:09:36 -08:00
ice_sriov.h ice: Add get/set hw address for VFs using devlink commands 2024-06-28 10:23:10 -07:00
ice_switch.c ice: add recipe priority check in search 2025-01-14 14:37:34 -08:00
ice_switch.h ice: Remove unused members from switch API 2024-07-11 09:40:56 -07:00
ice_tc_lib.c ice: set correct dst VSI in only LAN filters 2024-09-30 14:23:19 -07:00
ice_tc_lib.h ice: Add support for PFCP hardware offload in switchdev 2024-04-01 10:49:29 +01:00
ice_trace.h ice: Add tracepoint for adding and removing switch rules 2024-07-11 09:40:56 -07:00
ice_txrx.c ice: stop storing XDP verdict within ice_rx_buf 2025-01-31 10:07:46 -08:00
ice_txrx.h ice: stop storing XDP verdict within ice_rx_buf 2025-01-31 10:07:46 -08:00
ice_txrx_lib.c net: intel: introduce {, Intel} Ethernet common library 2024-04-24 11:06:25 -07:00
ice_txrx_lib.h ice: stop storing XDP verdict within ice_rx_buf 2025-01-31 10:07:46 -08:00
ice_type.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-01-16 10:34:59 -08:00
ice_vf_lib.c ice: Fix deinitializing VF in error path 2025-02-25 19:09:36 -08:00
ice_vf_lib.h ice: Support VF queue rate limit and quanta size configuration 2024-10-10 08:30:23 -07:00
ice_vf_lib_private.h ice: Fix deinitializing VF in error path 2025-02-25 19:09:36 -08:00
ice_vf_mbx.c ice: add E830 HW VF mailbox message limit support 2024-10-08 14:37:15 -07:00
ice_vf_mbx.h ice: add E830 HW VF mailbox message limit support 2024-10-08 14:37:15 -07:00
ice_vf_vsi_vlan_ops.c ice: fix enabling RX VLAN filtering 2024-04-03 09:16:19 -07:00
ice_vf_vsi_vlan_ops.h
ice_virtchnl.c ice: Fix NULL pointer dereference in switchdev 2024-12-03 10:11:52 -08:00
ice_virtchnl.h ice: Support VF queue rate limit and quanta size configuration 2024-10-10 08:30:23 -07:00
ice_virtchnl_allowlist.c ice: Support VF queue rate limit and quanta size configuration 2024-10-10 08:30:23 -07:00
ice_virtchnl_allowlist.h
ice_virtchnl_fdir.c ice: enable FDIR filters from raw binary patterns for VFs 2024-08-13 14:51:29 -07:00
ice_virtchnl_fdir.h ice: Add a per-VF limit on number of FDIR filters 2024-07-23 15:26:41 -07:00
ice_vlan.h
ice_vlan_mode.c
ice_vlan_mode.h
ice_vsi_vlan_lib.c ice: clear port vlan config during reset 2024-09-30 14:23:31 -07:00
ice_vsi_vlan_lib.h ice: clear port vlan config during reset 2024-09-30 14:23:31 -07:00
ice_vsi_vlan_ops.c ice: basic support for VLAN in subfunctions 2024-09-06 11:01:24 -07:00
ice_vsi_vlan_ops.h
ice_xsk.c xsk: make xsk_buff_add_frag() really add the frag via __xdp_buff_add_frag() 2024-12-19 19:51:14 -08:00
ice_xsk.h ice: improve updating ice_{t,r}x_ring::xsk_pool 2024-07-29 08:52:29 -07:00