mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 03:10:12 +00:00
vxge: Implement the SIOCGHWTSTAMP ioctl
Compile-tested only. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
parent
100dbda8e4
commit
450e55e996
1 changed files with 19 additions and 8 deletions
|
@ -3185,7 +3185,7 @@ static enum vxge_hw_status vxge_timestamp_config(struct __vxge_hw_device *devh)
|
|||
return status;
|
||||
}
|
||||
|
||||
static int vxge_hwtstamp_ioctl(struct vxgedev *vdev, void __user *data)
|
||||
static int vxge_hwtstamp_set(struct vxgedev *vdev, void __user *data)
|
||||
{
|
||||
struct hwtstamp_config config;
|
||||
int i;
|
||||
|
@ -3246,6 +3246,21 @@ static int vxge_hwtstamp_ioctl(struct vxgedev *vdev, void __user *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int vxge_hwtstamp_get(struct vxgedev *vdev, void __user *data)
|
||||
{
|
||||
struct hwtstamp_config config;
|
||||
|
||||
config.flags = 0;
|
||||
config.tx_type = HWTSTAMP_TX_OFF;
|
||||
config.rx_filter = (vdev->rx_hwts ?
|
||||
HWTSTAMP_FILTER_ALL : HWTSTAMP_FILTER_NONE);
|
||||
|
||||
if (copy_to_user(data, &config, sizeof(config)))
|
||||
return -EFAULT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* vxge_ioctl
|
||||
* @dev: Device pointer.
|
||||
|
@ -3259,19 +3274,15 @@ static int vxge_hwtstamp_ioctl(struct vxgedev *vdev, void __user *data)
|
|||
static int vxge_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
|
||||
{
|
||||
struct vxgedev *vdev = netdev_priv(dev);
|
||||
int ret;
|
||||
|
||||
switch (cmd) {
|
||||
case SIOCSHWTSTAMP:
|
||||
ret = vxge_hwtstamp_ioctl(vdev, rq->ifr_data);
|
||||
if (ret)
|
||||
return ret;
|
||||
break;
|
||||
return vxge_hwtstamp_set(vdev, rq->ifr_data);
|
||||
case SIOCGHWTSTAMP:
|
||||
return vxge_hwtstamp_get(vdev, rq->ifr_data);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue