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.

Reply via email to