Staging: hv: add basic ethtool support

Ethtool allows querying device information and controlling parameters.
For now just add ability to turn on/off scatter/gather.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Stephen Hemminger 2010-05-04 09:58:57 -07:00 committed by Greg Kroah-Hartman
parent b220f5f925
commit f82f4ad7bf

View File

@ -326,6 +326,21 @@ static int netvsc_recv_callback(struct hv_device *device_obj,
return 0;
}
static void netvsc_get_drvinfo(struct net_device *net,
struct ethtool_drvinfo *info)
{
strcpy(info->driver, "hv_netvsc");
strcpy(info->version, HV_DRV_VERSION);
strcpy(info->fw_version, "N/A");
}
static const struct ethtool_ops ethtool_ops = {
.get_drvinfo = netvsc_get_drvinfo,
.get_sg = ethtool_op_get_sg,
.set_sg = ethtool_op_set_sg,
.get_link = ethtool_op_get_link,
};
static const struct net_device_ops device_ops = {
.ndo_open = netvsc_open,
.ndo_stop = netvsc_close,
@ -396,6 +411,7 @@ static int netvsc_probe(struct device *device)
/* TODO: Add GSO and Checksum offload */
net->features = NETIF_F_SG;
SET_ETHTOOL_OPS(net, &ethtool_ops);
SET_NETDEV_DEV(net, device);
ret = register_netdev(net);