diff mbox series

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

Message ID 20230224-cls_api-wunused-function-v1-1-12c77986dc2d@kernel.org (mailing list archive)
State Accepted
Delegated to: Netdev Maintainers
Headers show
Series [net] net/sched: cls_api: Move call to tcf_exts_miss_cookie_base_destroy() | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net
netdev/fixes_present success Fixes tag present in non-next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 9 this patch: 9
netdev/cc_maintainers success CCed 10 of 10 maintainers
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 9 this patch: 9
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 10 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Nathan Chancellor Feb. 24, 2023, 6:18 p.m. UTC
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 <nathan@kernel.org>
---
 net/sched/cls_api.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: ac3ad19584b26fae9ac86e4faebe790becc74491
change-id: 20230224-cls_api-wunused-function-17aa94fdef90

Best regards,

Comments

Simon Horman Feb. 25, 2023, 4:08 p.m. UTC | #1
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 <nathan@kernel.org>

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 <simon.horman@corigine.com>
Nathan Chancellor Feb. 25, 2023, 9:15 p.m. UTC | #2
On Sat, Feb 25, 2023 at 05:08:17PM +0100, Simon Horman wrote:
> 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 <nathan@kernel.org>
> 
> Thanks Nathan,
> 
> I think the #ifdefs in this file could do with some work.

Yes, it is definitely an eye sore. I thought about cleaning it up but it
felt like net-next material to me, plus I have no other interest in this
code other than making the warning in my builds go away, if I am being
honest :)

> But as a fix this looks good to me.
> 
> Reviewed-by: Simon Horman <simon.horman@corigine.com>

Thanks for the quick review!

Cheers,
Nathan
Simon Horman Feb. 26, 2023, 12:01 p.m. UTC | #3
On Sat, Feb 25, 2023 at 02:15:27PM -0700, Nathan Chancellor wrote:
> On Sat, Feb 25, 2023 at 05:08:17PM +0100, Simon Horman wrote:
> > 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 <nathan@kernel.org>
> > 
> > Thanks Nathan,
> > 
> > I think the #ifdefs in this file could do with some work.
> 
> Yes, it is definitely an eye sore. I thought about cleaning it up but it
> felt like net-next material to me, plus I have no other interest in this
> code other than making the warning in my builds go away, if I am being
> honest :)

Yes, of course (x2) :)

> > But as a fix this looks good to me.
> > 
> > Reviewed-by: Simon Horman <simon.horman@corigine.com>
> 
> Thanks for the quick review!
> 
> Cheers,
> Nathan
>
Jakub Kicinski Feb. 27, 2023, 7:25 p.m. UTC | #4
On Fri, 24 Feb 2023 11:18:49 -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 <nathan@kernel.org>

Applied, thanks!
diff mbox series

Patch

diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 3569e2c3660c..2a6b6be0811b 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -3241,9 +3241,9 @@  EXPORT_SYMBOL(tcf_exts_init_ex);
 
 void tcf_exts_destroy(struct tcf_exts *exts)
 {
-#ifdef CONFIG_NET_CLS_ACT
 	tcf_exts_miss_cookie_base_destroy(exts);
 
+#ifdef CONFIG_NET_CLS_ACT
 	if (exts->actions) {
 		tcf_action_destroy(exts->actions, TCA_ACT_UNBIND);
 		kfree(exts->actions);