Subject: Re: [patch net-next 04/20] net: sched: use tcf_exts_has_actions in tcf_exts_exec

From: Jiri Pirko <[email-masked]>
Date: Tue, 1 Aug 2017 06:53:45 +0200

Mon, Jul 31, 2017 at 10:37:21PM CEST, [email-masked] wrote:
>On Fri, Jul 28, 2017 at 7:40 AM, Jiri Pirko <[email-masked]> wrote:
>> +static inline int
>> +tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts,
>> +             struct tcf_result *res)
>> +{
>> +#ifdef CONFIG_NET_CLS_ACT
>> +       if (tcf_exts_has_actions(exts))
>> +               return tcf_action_exec(skb, exts->actions, exts->nr_actions,
>> +                                      res);
>> +#endif
>> +       return 0;
>> +}
>
>
>While you are on it, can we get rid of this macro too?
>
>tcf_action_exec() is only defined with CONFIG_NET_CLS_ACT,
>not sure if compiler is kind enough to eliminate the false branch
>for us:
>
>if (false)
>    return tcf_action_exec(...); // not defined but the branch is dead
>
>At least you can add a wrapper for tcf_action_exec() to just
>return 0.

Did you see?
net: sched: remove check for number of actions in tcf_exts_exec

I will add static inline stub for tcf_action_exec in case CONFIG_NET_CLS_ACT
is not set.