Thomas Petazzoni wrote: [...] > --- linuxdev.orig/include/linux/ethtool.h > +++ linuxdev/include/linux/ethtool.h > @@ -283,6 +283,7 @@ > struct net_device; > > /* Some generic methods drivers may use in their ethtool_ops */ > +#ifdef CONFIG_ETHTOOL > u32 ethtool_op_get_link(struct net_device *dev); > u32 ethtool_op_get_tx_csum(struct net_device *dev); > int ethtool_op_set_tx_csum(struct net_device *dev, u32 data); > @@ -296,6 +297,21 @@ > 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); > +#else > +static inline u32 ethtool_op_get_link(struct net_device *dev) { return 0; } > +static inline u32 ethtool_op_get_tx_csum(struct net_device *dev) { return 0; } > +static inline int ethtool_op_set_tx_csum(struct net_device *dev, u32 data) { return 0; } > +static inline int ethtool_op_set_tx_hw_csum(struct net_device *dev, u32 data) { return 0; } > +static inline int ethtool_op_set_tx_ipv6_csum(struct net_device *dev, u32 data) { return 0; } > +static inline u32 ethtool_op_get_sg(struct net_device *dev) { return 0; } > +static inline int ethtool_op_set_sg(struct net_device *dev, u32 data) { return 0; } > +static inline u32 ethtool_op_get_tso(struct net_device *dev) { return 0; } > +static inline int ethtool_op_set_tso(struct net_device *dev, u32 data) { return 0; } > +static inline u32 ethtool_op_get_ufo(struct net_device *dev) { return 0; } > +static inline int ethtool_op_set_ufo(struct net_device *dev, u32 data) { return 0; } > +static inline u32 ethtool_op_get_flags(struct net_device *dev) { return 0; } > +static inline int ethtool_op_set_flags(struct net_device *dev, u32 data) { return 0; } The dummy setter functions should return -EOPNOTSUPP. The getter functions just read device feature flags and could be made inline. They have no way of returning failure. [...] > =================================================================== > --- linuxdev.orig/net/core/dev.c > +++ linuxdev/net/core/dev.c > @@ -3669,6 +3669,7 @@ > return ret; > > case SIOCETHTOOL: > +#ifdef CONFIG_ETHTOOL > dev_load(net, ifr.ifr_name); > rtnl_lock(); > ret = dev_ethtool(net, &ifr); > @@ -3681,6 +3682,9 @@ > ret = -EFAULT; > } > return ret; > +#else > + return -EINVAL; > +#endif > > /* > * These ioctl calls: You also need to conditionalise dev_disable_lro(). 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. -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html