mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 01:53:29 +02:00
The V1 ADD_VLAN opcode had no success handler; filters sent via V1
stayed in ADDING state permanently. Add a fallthrough case so V1
filters also transition ADDING -> ACTIVE on PF confirmation.
Critically, add an `if (v_retval) break` guard: the error switch in
iavf_virtchnl_completion() does NOT return after handling errors,
it falls through to the success switch. Without this guard, a
PF-rejected ADD would incorrectly mark ADDING filters as ACTIVE,
creating a driver/HW mismatch where the driver believes the filter
is installed but the PF never accepted it.
For V2, this is harmless: iavf_vlan_add_reject() in the error
block already kfree'd all ADDING filters, so the success handler
finds nothing to transition.
Fixes:
|
||
|---|---|---|
| .. | ||
| iavf_adminq_cmd.h | ||
| iavf_adminq.c | ||
| iavf_adminq.h | ||
| iavf_adv_rss.c | ||
| iavf_adv_rss.h | ||
| iavf_alloc.h | ||
| iavf_common.c | ||
| iavf_devids.h | ||
| iavf_ethtool.c | ||
| iavf_fdir.c | ||
| iavf_fdir.h | ||
| iavf_main.c | ||
| iavf_osdep.h | ||
| iavf_prototype.h | ||
| iavf_ptp.c | ||
| iavf_ptp.h | ||
| iavf_register.h | ||
| iavf_status.h | ||
| iavf_trace.h | ||
| iavf_txrx.c | ||
| iavf_txrx.h | ||
| iavf_type.h | ||
| iavf_types.h | ||
| iavf_virtchnl.c | ||
| iavf.h | ||
| Makefile | ||