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

From: Gustavo A. R. Silva
Date: Tue Oct 29 2024 - 18:06:50 EST




On 29/10/24 14:00, Jakub Kicinski wrote:
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.

Gotcha. Hopefully, this v2 is just fine:

https://lore.kernel.org/linux-hardening/cover.1730238285.git.gustavoars@xxxxxxxxxx/

Thanks!
-Gustavo


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.