Subject: Re: [PATCH net-next v4 2/6] netdev_features: remove unused __UNUSED_NETIF_F_1

From: Jakub Kicinski <[email-masked]>
Date: Mon, 26 Aug 2024 08:09:00 -0700

On Sun, 25 Aug 2024 11:19:49 +0300 Gal Pressman wrote:
> On 21/08/2024 18:43, Eric Dumazet wrote:
> > On Wed, Aug 21, 2024 at 5:07 PM Alexander Lobakin
> > <[email-masked]> wrote:  
> >>
> >> NETIF_F_NO_CSUM was removed in 3.2-rc2 by commit 34324dc2bf27
> >> ("net: remove NETIF_F_NO_CSUM feature bit") and became
> >> __UNUSED_NETIF_F_1. It's not used anywhere in the code.
> >> Remove this bit waste.
> >>
> >> It wasn't needed to rename the flag instead of removing it as
> >> netdev features are not uAPI/ABI. Ethtool passes their names
> >> and values separately with no fixed positions and the userspace
> >> Ethtool code doesn't have any hardcoded feature names/bits, so
> >> that new Ethtool will work on older kernels and vice versa.  
> > 
> > This is only true for recent enough ethtool (>= 3.4)
> > 
> > You might refine the changelog to not claim this "was not needed".
> > 
> > Back in 2011 (and linux-2.6.39) , this was needed for sure.
> > 
> > I am not sure we have a documented requirement about ethtool versions.
> >   
> 
> This is a nice history lesson, so before the features infrastructure the
> feature bits were considered as "ABI"?
> 
> I couldn't find a point in time where they were actually defined in the
> uapi files?

Keep in mind that include/uapi was introduced around v3.7, before 
that IIUC everything under include/linux that wasn't protected by
ifdef __KERNEL__ was uAPI. So all of include/linux/netdev_features.h