Subject: Re: [PATCH net-next] net: ieee802154: Fix compilation error when CONFIG_IEEE802154_NL802154_EXPERIMENTAL is disabled

From: Jakub Kicinski <[email-masked]>
Date: Tue, 30 Aug 2022 23:13:30 -0700

On Tue, 30 Aug 2022 13:12:37 +0300 Gal Pressman wrote:
> When CONFIG_IEEE802154_NL802154_EXPERIMENTAL is disabled,
> NL802154_CMD_DEL_SEC_LEVEL is undefined and results in a compilation
> error:
> net/ieee802154/nl802154.c:2503:19: error: 'NL802154_CMD_DEL_SEC_LEVEL' undeclared here (not in a function); did you mean 'NL802154_CMD_SET_CCA_ED_LEVEL'?
>  2503 |  .resv_start_op = NL802154_CMD_DEL_SEC_LEVEL + 1,
>       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
>       |                   NL802154_CMD_SET_CCA_ED_LEVEL
> 
> Use __NL802154_CMD_AFTER_LAST instead of
> 'NL802154_CMD_DEL_SEC_LEVEL + 1' to indicate the last command.
> 
> Fixes: 9c5d03d36251 ("genetlink: start to validate reserved header bytes")
> Reviewed-by: Leon Romanovsky <[email-masked]>
> Signed-off-by: Gal Pressman <[email-masked]>
> ---
>  net/ieee802154/nl802154.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
> index 38c4f3cb010e..dbfd24c70bd0 100644
> --- a/net/ieee802154/nl802154.c
> +++ b/net/ieee802154/nl802154.c
> @@ -2500,7 +2500,7 @@ static struct genl_family nl802154_fam __ro_after_init = {
>  	.module = THIS_MODULE,
>  	.ops = nl802154_ops,
>  	.n_ops = ARRAY_SIZE(nl802154_ops),
> -	.resv_start_op = NL802154_CMD_DEL_SEC_LEVEL + 1,
> +	.resv_start_op = __NL802154_CMD_AFTER_LAST,
>  	.mcgrps = nl802154_mcgrps,
>  	.n_mcgrps = ARRAY_SIZE(nl802154_mcgrps),
>  };

Thanks for the fix! I think we should switch to 
NL802154_CMD_SET_WPAN_PHY_NETNS + 1, tho.

The point is to set the value to the cmd number after _currently_ 
last defined command. The meta-value like LAST will move next time
someone adds a command, meaning the validation for new commands will
never actually come.