ixgbe_configure_clsu32() returns 0 (success) after the nexthdr loop even when ixgbe_clsu32_build_input() fails for every candidate entry and no jump-table slot is actually programmed. Callers that test the return value would then falsely believe the filter was installed.
The variable 'err' already tracks the last ixgbe_clsu32_build_input() return value; if the loop completes with a successful break, err is 0. If all attempts failed, err holds the last failure code. Change the unconditional 'return 0' to 'return err' so errors are propagated correctly. Signed-off-by: Aleksandr Loktionov <[email protected]> Reviewed-by: Marcin Szycik <[email protected]> --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index db954e9..8ac80ff 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -10311,7 +10311,7 @@ static int ixgbe_configure_clsu32(struct ixgbe_adapter *adapter, kfree(jump); } } - return 0; + return err; } input = kzalloc_obj(*input); -- 2.52.0
