net: pass new SIOCSHWTSTAMP through to device drivers
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
51f31cabe3
commit
d24fff22d8
2 changed files with 8 additions and 0 deletions
|
@ -522,6 +522,11 @@ static int dev_ifsioc(unsigned int fd, unsigned int cmd, unsigned long arg)
|
||||||
if (err)
|
if (err)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
break;
|
break;
|
||||||
|
case SIOCSHWTSTAMP:
|
||||||
|
if (copy_from_user(&ifr, uifr32, sizeof(*uifr32)))
|
||||||
|
return -EFAULT;
|
||||||
|
ifr.ifr_data = compat_ptr(uifr32->ifr_ifru.ifru_data);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if (copy_from_user(&ifr, uifr32, sizeof(*uifr32)))
|
if (copy_from_user(&ifr, uifr32, sizeof(*uifr32)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
@ -2563,6 +2568,7 @@ HANDLE_IOCTL(SIOCSIFMAP, dev_ifsioc)
|
||||||
HANDLE_IOCTL(SIOCGIFADDR, dev_ifsioc)
|
HANDLE_IOCTL(SIOCGIFADDR, dev_ifsioc)
|
||||||
HANDLE_IOCTL(SIOCSIFADDR, dev_ifsioc)
|
HANDLE_IOCTL(SIOCSIFADDR, dev_ifsioc)
|
||||||
HANDLE_IOCTL(SIOCSIFHWBROADCAST, dev_ifsioc)
|
HANDLE_IOCTL(SIOCSIFHWBROADCAST, dev_ifsioc)
|
||||||
|
HANDLE_IOCTL(SIOCSHWTSTAMP, dev_ifsioc)
|
||||||
|
|
||||||
/* ioctls used by appletalk ddp.c */
|
/* ioctls used by appletalk ddp.c */
|
||||||
HANDLE_IOCTL(SIOCATALKDIFADDR, dev_ifsioc)
|
HANDLE_IOCTL(SIOCATALKDIFADDR, dev_ifsioc)
|
||||||
|
|
|
@ -4019,6 +4019,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd)
|
||||||
cmd == SIOCSMIIREG ||
|
cmd == SIOCSMIIREG ||
|
||||||
cmd == SIOCBRADDIF ||
|
cmd == SIOCBRADDIF ||
|
||||||
cmd == SIOCBRDELIF ||
|
cmd == SIOCBRDELIF ||
|
||||||
|
cmd == SIOCSHWTSTAMP ||
|
||||||
cmd == SIOCWANDEV) {
|
cmd == SIOCWANDEV) {
|
||||||
err = -EOPNOTSUPP;
|
err = -EOPNOTSUPP;
|
||||||
if (ops->ndo_do_ioctl) {
|
if (ops->ndo_do_ioctl) {
|
||||||
|
@ -4173,6 +4174,7 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)
|
||||||
case SIOCBONDCHANGEACTIVE:
|
case SIOCBONDCHANGEACTIVE:
|
||||||
case SIOCBRADDIF:
|
case SIOCBRADDIF:
|
||||||
case SIOCBRDELIF:
|
case SIOCBRDELIF:
|
||||||
|
case SIOCSHWTSTAMP:
|
||||||
if (!capable(CAP_NET_ADMIN))
|
if (!capable(CAP_NET_ADMIN))
|
||||||
return -EPERM;
|
return -EPERM;
|
||||||
/* fall through */
|
/* fall through */
|
||||||
|
|
Loading…
Reference in a new issue