On 9/11/2026 11:40 AM, Bruce Richardson wrote:
When installing a QinQ tunnel filter, errors were not properly caught leading to the situation where the app got a successful return code even though the filter was not properly installed. Add an appropriate log message and error return code on error to fix.Fixes: 116b7910d641 ("net/i40e: add QinQ filter create function") Cc: [email protected] Signed-off-by: Bruce Richardson <[email protected]> --- drivers/net/intel/i40e/i40e_ethdev.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/intel/i40e/i40e_ethdev.c b/drivers/net/intel/i40e/i40e_ethdev.c index b6b2d291ee..c91abe7626 100644 --- a/drivers/net/intel/i40e/i40e_ethdev.c +++ b/drivers/net/intel/i40e/i40e_ethdev.c @@ -8597,9 +8597,11 @@ i40e_dev_consistent_tunnel_filter_set(struct i40e_pf *pf, case I40E_TUNNEL_TYPE_QINQ: if (!pf->qinq_replace_flag) { ret = i40e_cloud_filter_qinq_create(pf); - if (ret < 0) - PMD_DRV_LOG(DEBUG, - "QinQ tunnel filter already created."); + if (ret < 0) { + PMD_DRV_LOG(ERR, "Failed to create QinQ tunnel filter."); + /* ret is a raw i40e_status_code, not an errno */ + return -ENOTSUP; + } pf->qinq_replace_flag = 1; } /* Add in the General fields the values of
Returning ENOTSUP unconditionally seemed unwarranted to me, so I dug into the code to see what sort of errors we might see. The function in question actually mixes return values (default value is `-ENOTSUP` which is -95, but most errors from that codepath return `I40E_NOT_SUPPORTED` which is -64), but most of them indeed boil down to ENOTSUP (except for status returned from call into AQ command).
So, although not ideal, this is probably consistent with current implementation
Acked-by: Anatoly Burakov <[email protected]> -- Thanks, Anatoly

