Subject: Re: [PATCH AUTOSEL 5.13 184/189] flow_offload: action should not be NULL when it is referenced

From: Sasha Levin <[email-masked]>
Date: Mon, 9 Aug 2021 12:06:17 -0400

On Fri, Aug 06, 2021 at 11:30:04AM +0200, Eric Dumazet wrote:
>On 7/6/21 1:14 PM, Sasha Levin wrote:
>> From: gushengxian <[email-masked]>
>>
>> [ Upstream commit 9ea3e52c5bc8bb4a084938dc1e3160643438927a ]
>>
>> "action" should not be NULL when it is referenced.
>>
>> Signed-off-by: gushengxian <[email-masked]>
>> Signed-off-by: gushengxian <[email-masked]>
>> Signed-off-by: David S. Miller <[email-masked]>
>> Signed-off-by: Sasha Levin <[email-masked]>
>> ---
>>  include/net/flow_offload.h | 12 +++++++-----
>>  1 file changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h
>> index dc5c1e69cd9f..69c9eabf8325 100644
>> --- a/include/net/flow_offload.h
>> +++ b/include/net/flow_offload.h
>> @@ -319,12 +319,14 @@ flow_action_mixed_hw_stats_check(const struct flow_action *action,
>>  	if (flow_offload_has_one_action(action))
>>  		return true;
>>
>> -	flow_action_for_each(i, action_entry, action) {
>> -		if (i && action_entry->hw_stats != last_hw_stats) {
>> -			NL_SET_ERR_MSG_MOD(extack, "Mixing HW stats types for actions is not supported");
>> -			return false;
>> +	if (action) {
>> +		flow_action_for_each(i, action_entry, action) {
>> +			if (i && action_entry->hw_stats != last_hw_stats) {
>> +				NL_SET_ERR_MSG_MOD(extack, "Mixing HW stats types for actions is not supported");
>> +				return false;
>> +			}
>> +			last_hw_stats = action_entry->hw_stats;
>>  		}
>> -		last_hw_stats = action_entry->hw_stats;
>>  	}
>>  	return true;
>>  }
>>
>
>This patch makes no sense really.
>
>If action is NULL, a crash would happen earlier anyway in
>
>if (flow_offload_has_one_action(action))
>    return true;
>
>Also, I wonder why it has been backported to stable version,
>there was no Fixes: tag in the submission.

That's the AUTOSEL logic: it will attempt to find fixes in commits that
don't have a fixes: tag. Those get longer review times and aren't
backported as quickly as commits with a stable tag or a fixes tag.

-- 
Thanks,
Sasha