From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ajit Khaparde Subject: Re: [PATCH net-next-2.6] net: Changes to support the "-f" option of ethtool. Date: Wed, 5 Aug 2009 18:07:05 +0530 Message-ID: <20090805123704.GC6592@serverengines.com> References: <20090805123211.GB6592@serverengines.com> Reply-To: Ajit Khaparde Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: davem@davemloft.net, jgarzik@pobox.com, netdev@vger.kernel.org Return-path: Received: from segment-124-30.sify.net ([124.30.166.146]:10033 "EHLO akhaparde.serverengines.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S933340AbZHEMhG (ORCPT ); Wed, 5 Aug 2009 08:37:06 -0400 Content-Disposition: inline In-Reply-To: <20090805123211.GB6592@serverengines.com> Sender: netdev-owner@vger.kernel.org List-ID: The patch intends to use the request_firmware() interface to pick the firmware image file. I had missed this in the original post. Thanks. On 05/08/09 18:02 +0530, Ajit Khaparde wrote: > This patch adds kernel support for the new "-f" option in ethtool, > This will allow a firmware image to be flashed to a network device. > > Signed-off-by: Ajit Khaparde > --- > include/linux/ethtool.h | 3 +++ > net/core/ethtool.c | 13 +++++++++++++ > 2 files changed, 16 insertions(+), 0 deletions(-) > > diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h > index 90c4a36..9b92f44 100644 > --- a/include/linux/ethtool.h > +++ b/include/linux/ethtool.h > @@ -489,6 +489,7 @@ struct ethtool_ops { > int (*get_stats_count)(struct net_device *);/* use get_sset_count */ > int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, void *); > int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *); > + int (*flash_device)(struct net_device *); > }; > #endif /* __KERNEL__ */ > > @@ -545,6 +546,8 @@ struct ethtool_ops { > #define ETHTOOL_GRXCLSRLALL 0x00000030 /* Get all RX classification rule */ > #define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */ > #define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */ > +#define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device > + * (ethtool_value). */ > > /* compatibility with older code */ > #define SPARC_ETH_GSET ETHTOOL_GSET > diff --git a/net/core/ethtool.c b/net/core/ethtool.c > index 44e5711..0524201 100644 > --- a/net/core/ethtool.c > +++ b/net/core/ethtool.c > @@ -898,6 +898,16 @@ static int ethtool_set_value(struct net_device *dev, char __user *useraddr, > return actor(dev, edata.data); > } > > +static int ethtool_flash_device(struct net_device *dev) > +{ > + int err; > + > + if (!dev->ethtool_ops->flash_device) > + return -EOPNOTSUPP; > + > + return dev->ethtool_ops->flash_device(dev); > +} > + > /* The main entry point in this file. Called from net/core/dev.c */ > > int dev_ethtool(struct net *net, struct ifreq *ifr) > @@ -1111,6 +1121,9 @@ int dev_ethtool(struct net *net, struct ifreq *ifr) > case ETHTOOL_SGRO: > rc = ethtool_set_gro(dev, useraddr); > break; > + case ETHTOOL_FLASHDEV: > + rc = ethtool_flash_device(dev); > + break; > default: > rc = -EOPNOTSUPP; > } > -- > 1.6.0.4 > > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html