diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2010-05-04 09:58:57 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-11 11:36:10 -0700 |
commit | f82f4ad7bf9dc3c7268080cc2afdff897e1d72ca (patch) | |
tree | e4bf388c2175dc1b75ba8f9709913c90465389a3 /drivers | |
parent | b220f5f925b8938747bfe4a61e362d132bdd9544 (diff) |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/hv/netvsc_drv.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c index a6ca01025e48..a6584a876618 100644 --- a/drivers/staging/hv/netvsc_drv.c +++ b/drivers/staging/hv/netvsc_drv.c @@ -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, ðtool_ops); SET_NETDEV_DEV(net, device); ret = register_netdev(net); |