Subject: Re: [PATCH net-next-2.6 1/3] ethtool: Change ethtool_op_set_flags to validate flags

From: Ben Hutchings <[email-masked]>
Date: Sat, 03 Jul 2010 20:21:24 +0100

On Sat, 2010-07-03 at 12:07 -0700, Randy Dunlap wrote:
> On Fri, 02 Jul 2010 22:07:11 -0700 (PDT) David Miller wrote:
> 
> > From: Randy Dunlap <[email-masked]>
> > Date: Fri, 2 Jul 2010 09:55:14 -0700
> > 
> > > On Wed, 30 Jun 2010 13:44:32 +0100 Ben Hutchings wrote:
> > >> @@ -457,7 +457,7 @@ int ethtool_op_set_tso(struct net_device *dev, u32 data);
> > >>  u32 ethtool_op_get_ufo(struct net_device *dev);
> > >>  int ethtool_op_set_ufo(struct net_device *dev, u32 data);
> > >>  u32 ethtool_op_get_flags(struct net_device *dev);
> > >> -int ethtool_op_set_flags(struct net_device *dev, u32 data);
> > >> +int ethtool_op_set_flags(struct net_device *dev, u32 data, u32 supported);
> > > 
> > > That one-line change is missing from linux-next-20100702, causing:
> > > 
> > > drivers/infiniband/ulp/ipoib/ipoib_ethtool.c:157: warning: initialization from incompatible pointer type
> > 
> > Strange, it's in net-next-2.6 for sure:
> > 
> > davem@sunset:~/src/GIT/net-next-2.6$ egrep ethtool_op_set_flags include/linux/ethtool.h
> > int ethtool_op_set_flags(struct net_device *dev, u32 data, u32 supported);
> 
> Yep, my bad.
> 
> In include/linux/ethtool.h, struct ethtool_ops, field/member 'set_flags':
> 
> 	int	(*set_flags)(struct net_device *, u32);
> 
> Does that need another u32 for 'supported'?  This is where the linux-next
> warnings are coming from.

No, this is intentional.  I just missed the users of
ethtool_op_set_flags() in drivers/infiniband.  I'll send a patch for
those shortly.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.