Subject: Re: [PATCH 2/2][next] net: ethtool: Avoid thousands of -Wflex-array-member-not-at-end warnings

From: Jakub Kicinski <[email-masked]>
Date: Tue, 29 Oct 2024 13:00:37 -0700

On Tue, 29 Oct 2024 13:18:56 -0600 Gustavo A. R. Silva wrote:
> By priority I mean if preserving the reverse xmas tree is a most
> after any changes that mess in some way with it. As in the case below,
> where things were already messed up:
> 
> +       const struct ethtool_link_settings_hdr *base = &lk_ksettings->base;
>          struct bnxt *bp = netdev_priv(dev);
>          struct bnxt_link_info *link_info = &bp->link_info;
> -       const struct ethtool_link_settings *base = &lk_ksettings->base;
>          bool set_pause = false;
>          u32 speed, lanes = 0;
>          int rc = 0;
> 
> Should I leave the rest as-is, or should I now have to rearrange the whole
> thing to accommodate for the convention?

Don't rearrange the rest. The point is that if you touch a line you end
up with a delete and an add. So you can as well move it to get it closer
to the convention. But that's just nice to have, I brought the entire
thing up because of the net/ethtool/ code which previously followed the
convention and after changes it wouldn't.

> How I see this, we can take a couple of directions:
> 
> a) when things are already messed up, just implement your changes and leave
> the rest as-is.

This is acceptable, moving things closer to convention is nice to have.

> b) when your changes mess things up, clean it up and accommodate for the
> convention.

Yes, if by "your changes mess things up" you mean that the code follows
the convention exactly for a given function - then yes, the changes must
remain complaint. Not sure why you say "clean it up", if the code is
complaint you shouldn't break it. No touching of pre-existing code
(other than modified lines) should be necessary.

> extra option:
> 
> c) this is probably going to be a case by case thing and we may ask you
>     to do more changes as we see fit.
> 
> To be clear, I have no issue with c) (because it's basically how things
> usually work), as long as maintainers don't expect v1 of any patch to
> be in pristine form. In any other case, I would really like to be crystal
> clear about what's expected and what's not.