On Thu, Mar 27, 2025 at 03:33:00PM +0000, Andre Przywara wrote:

> The net_check_prereq() routine in the generic network handling code
> mixes case: labels with #ifdef's, which makes predicting fallthrough
> situations tricky. We had two "fall through" comments in the code, but
> at the wrong places.
> 
> Remove one unneeded comment (no annotations necessary between just empty
> labels), and move one other instance to the right place (before any
> label sequence).
> This makes GCC's implicit fallthrough checker happy.
> 
> Signed-off-by: Andre Przywara <andre.przyw...@arm.com>
> Reviewed-by: Tom Rini <tr...@konsulko.com>
> ---
>  net/net.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/net/net.c b/net/net.c
> index 5219367e391..f191f16357c 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -1525,7 +1525,6 @@ static int net_check_prereq(enum proto_t protocol)
>  #if defined(CONFIG_CMD_NFS)
>       case NFS:
>  #endif
> -             /* Fall through */
>       case TFTPGET:
>       case TFTPPUT:
>               if (IS_ENABLED(CONFIG_IPV6) && use_ip6) {
> @@ -1539,11 +1538,11 @@ static int net_check_prereq(enum proto_t protocol)
>                       puts("*** ERROR: `serverip' not set\n");
>                       return 1;
>               }
> +             fallthrough;
>  #if  defined(CONFIG_CMD_PING) || \
>       defined(CONFIG_CMD_DNS) || defined(CONFIG_PROT_UDP)
>  common:
>  #endif
> -             /* Fall through */
>  
>       case NETCONS:
>       case FASTBOOT_UDP:

So this one is harder than it looks. With clang, we cannot seemingly
have:
        fallthrough;
#if defined(CONFIG_CMD_PING) || \
    defined(CONFIG_CMD_DNS) || defined(CONFIG_PROT_UDP)
common:
#endif

And gcc was failing on:
        }
#if defined(CONFIG_CMD_PING) || \
    defined(CONFIG_CMD_DNS) || defined(CONFIG_PROT_UDP)
common:
#endif
        fallthrough;

Maybe we can move the label to inside the next set of cases, and then
also add CONFIG_CMD_PING6 to the checks, as that also has 'goto common;'

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to