Commit f2ce65b
iavf: stop removing VLAN filters from PF on interface down
When a VF goes down, the driver currently sends DEL_VLAN to the PF for
every VLAN filter (ACTIVE -> DISABLE -> send DEL -> INACTIVE), then
re-adds them all on UP (INACTIVE -> ADD -> send ADD -> ADDING ->
ACTIVE). This round-trip is unnecessary because:
1. The PF disables the VF's queues via VIRTCHNL_OP_DISABLE_QUEUES,
which already prevents all RX/TX traffic regardless of VLAN filter
state.
2. The VLAN filters remaining in PF HW while the VF is down is
harmless - packets matching those filters have nowhere to go with
queues disabled.
3. The DEL+ADD cycle during down/up creates race windows where the
VLAN filter list is incomplete. With spoofcheck enabled, the PF
enables TX VLAN filtering on the first non-zero VLAN add, blocking
traffic for any VLANs not yet re-added.
Remove the entire DISABLE/INACTIVE state machinery:
- Remove IAVF_VLAN_DISABLE and IAVF_VLAN_INACTIVE enum values
- Remove iavf_restore_filters() and its call from iavf_open()
- Remove VLAN filter handling from iavf_clear_mac_vlan_filters(),
rename it to iavf_clear_mac_filters()
- Remove DEL_VLAN_FILTER scheduling from iavf_down()
- Remove all DISABLE/INACTIVE handling from iavf_del_vlans()
VLAN filters now stay ACTIVE across down/up cycles. Only explicit
user removal (ndo_vlan_rx_kill_vid) or PF/VF reset triggers VLAN
filter deletion/re-addition.
Fixes: ed1f5b5 ("i40evf: remove VLAN filters on close")
Signed-off-by: Petr Oros <poros@redhat.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20260427-jk-iwl-net-petr-oros-fixes-v1-2-cdcb48303fd8@intel.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>1 parent 70d62b6 commit f2ce65b
3 files changed
Lines changed: 12 additions & 66 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
| 162 | + | |
| 163 | + | |
166 | 164 | | |
167 | 165 | | |
168 | 166 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
801 | 801 | | |
802 | 802 | | |
803 | 803 | | |
804 | | - | |
805 | | - | |
806 | | - | |
807 | | - | |
808 | | - | |
809 | | - | |
810 | | - | |
811 | | - | |
812 | | - | |
813 | | - | |
814 | | - | |
815 | | - | |
816 | | - | |
817 | | - | |
818 | | - | |
819 | | - | |
820 | | - | |
821 | | - | |
822 | | - | |
823 | | - | |
824 | | - | |
825 | 804 | | |
826 | 805 | | |
827 | 806 | | |
| |||
1246 | 1225 | | |
1247 | 1226 | | |
1248 | 1227 | | |
1249 | | - | |
1250 | | - | |
| 1228 | + | |
| 1229 | + | |
1251 | 1230 | | |
1252 | 1231 | | |
1253 | | - | |
| 1232 | + | |
1254 | 1233 | | |
1255 | | - | |
1256 | 1234 | | |
1257 | 1235 | | |
1258 | 1236 | | |
| |||
1271 | 1249 | | |
1272 | 1250 | | |
1273 | 1251 | | |
1274 | | - | |
1275 | | - | |
1276 | | - | |
1277 | | - | |
1278 | | - | |
1279 | 1252 | | |
1280 | 1253 | | |
1281 | 1254 | | |
| |||
1371 | 1344 | | |
1372 | 1345 | | |
1373 | 1346 | | |
1374 | | - | |
| 1347 | + | |
1375 | 1348 | | |
1376 | 1349 | | |
1377 | 1350 | | |
| |||
1388 | 1361 | | |
1389 | 1362 | | |
1390 | 1363 | | |
1391 | | - | |
1392 | | - | |
1393 | 1364 | | |
1394 | 1365 | | |
1395 | 1366 | | |
| |||
4494 | 4465 | | |
4495 | 4466 | | |
4496 | 4467 | | |
4497 | | - | |
4498 | | - | |
4499 | 4468 | | |
4500 | 4469 | | |
4501 | 4470 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
911 | 911 | | |
912 | 912 | | |
913 | 913 | | |
914 | | - | |
915 | | - | |
916 | | - | |
917 | | - | |
918 | | - | |
919 | | - | |
920 | 914 | | |
921 | 915 | | |
922 | 916 | | |
923 | 917 | | |
924 | 918 | | |
925 | | - | |
926 | | - | |
927 | | - | |
928 | | - | |
929 | | - | |
| 919 | + | |
930 | 920 | | |
931 | 921 | | |
932 | 922 | | |
| |||
959 | 949 | | |
960 | 950 | | |
961 | 951 | | |
962 | | - | |
963 | | - | |
964 | | - | |
965 | | - | |
966 | | - | |
967 | | - | |
968 | | - | |
| 952 | + | |
969 | 953 | | |
970 | 954 | | |
971 | 955 | | |
| |||
1007 | 991 | | |
1008 | 992 | | |
1009 | 993 | | |
1010 | | - | |
1011 | | - | |
| 994 | + | |
1012 | 995 | | |
1013 | 996 | | |
1014 | 997 | | |
| |||
1022 | 1005 | | |
1023 | 1006 | | |
1024 | 1007 | | |
1025 | | - | |
1026 | | - | |
1027 | | - | |
1028 | | - | |
1029 | | - | |
1030 | | - | |
1031 | | - | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
1032 | 1011 | | |
1033 | 1012 | | |
1034 | 1013 | | |
| |||
0 commit comments