Subject: Re: [PATCH net] net/sched: cls_api: Move call to tcf_exts_miss_cookie_base_destroy()

From: Simon Horman <[email-masked]>
Date: Sat, 25 Feb 2023 17:08:17 +0100

On Fri, Feb 24, 2023 at 11:18:49AM -0700, Nathan Chancellor wrote:
> When CONFIG_NET_CLS_ACT is disabled:
> 
>   ../net/sched/cls_api.c:141:13: warning: 'tcf_exts_miss_cookie_base_destroy' defined but not used [-Wunused-function]
>     141 | static void tcf_exts_miss_cookie_base_destroy(struct tcf_exts *exts)
>         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Due to the way the code is structured, it is possible for a definition
> of tcf_exts_miss_cookie_base_destroy() to be present without actually
> being used. Its single callsite is in an '#ifdef CONFIG_NET_CLS_ACT'
> block but a definition will always be present in the file. The version
> of tcf_exts_miss_cookie_base_destroy() that actually does something
> depends on CONFIG_NET_TC_SKB_EXT, so the stub function is used in both
> CONFIG_NET_CLS_ACT=n and CONFIG_NET_CLS_ACT=y + CONFIG_NET_TC_SKB_EXT=n
> configurations.
> 
> Move the call to tcf_exts_miss_cookie_base_destroy() in
> tcf_exts_destroy() out of the '#ifdef CONFIG_NET_CLS_ACT', so that it
> always appears used to the compiler, while not changing any behavior
> with any of the various configuration combinations.
> 
> Fixes: 80cd22c35c90 ("net/sched: cls_api: Support hardware miss to tc action")
> Signed-off-by: Nathan Chancellor <[email-masked]>

Thanks Nathan,

I think the #ifdefs in this file could do with some work.
But as a fix this looks good to me.

Reviewed-by: Simon Horman <[email-masked]>