On Wed, Jul 10, 2024 at 4:19 AM Breno Leitao <[email protected]> wrote: > > Hello Eric, > > On Tue, Jul 09, 2024 at 08:27:45AM -0700, Eric Dumazet wrote: > > On Tue, Jul 9, 2024 at 5:54 AM Breno Leitao <[email protected]> wrote: > > > > @@ -2596,7 +2599,7 @@ void dev_net_set(struct net_device *dev, struct net > > > *net) > > > */ > > > static inline void *netdev_priv(const struct net_device *dev) > > > { > > > - return (char *)dev + ALIGN(sizeof(struct net_device), > > > NETDEV_ALIGN); > > > + return (void *)dev->priv; > > > > Minor remark : the cast is not needed, but this is fine. > > In fact, the compiler is not very happy if I remove the cast: > > ./include/linux/netdevice.h:2603:9: error: returning 'const u8[]' > (aka 'const unsigned char[]') from a function with result type 'void *' > discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] > 2603 | return dev->priv; > | ^~~~~~~~~
This is because of the ‘const’ qualifier of the parameter. This could be solved with _Generic() later, if we want to keep the const qualifier.
