On Tue, 2015-12-08 at 10:02 -0800, Shannon Nelson wrote: > On Mon, Dec 7, 2015 at 8:42 PM, <kan.li...@intel.com> wrote: > > From: Kan Liang <kan.li...@intel.com> > > > > Intrdouce "queue" option for coalesce getting and setting. [...] > > --- a/net/core/ethtool.c > > +++ b/net/core/ethtool.c > > @@ -1123,10 +1123,16 @@ static noinline_for_stack int > > ethtool_get_coalesce(struct net_device *dev, > > void __user *useraddr) > > { > > struct ethtool_coalesce coalesce = { .cmd = ETHTOOL_GCOALESCE }; > > + struct ethtool_coalesce tmp = { .queue = -1 }; > > > > if (!dev->ethtool_ops->get_coalesce) > > return -EOPNOTSUPP; > > > > + if (copy_from_user(&tmp, useraddr, sizeof(coalesce))) > > + return -EFAULT; > > + > > + coalesce.queue = tmp.queue; > > + > > Is this going to do what you expect when you have an older ethtool > program? It seems to me that the older ethtool program will have the > original coalesce struct without the new queue field, so when you do [...]
Indeed, it's not safe to extend UAPI structures like this. Ben. -- Ben Hutchings Life would be so much easier if we could look at the source code.
signature.asc
Description: This is a digitally signed message part