aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2013-11-13 20:19:29 -0500
committerBen Hutchings <bhutchings@solarflare.com>2013-11-19 14:07:21 -0500
commitfd468c74bd4d6949736810a80d6ca05eb20fba84 (patch)
treec68b11620237ba704b740827ce952409b5666231 /net
parent590d4693fb1c96ce441d11c6d1acb413a90b62e5 (diff)
net_tstamp: Add SIOCGHWTSTAMP ioctl to match SIOCSHWTSTAMP
SIOCSHWTSTAMP returns the real configuration to the application using it, but there is currently no way for any other application to find out the configuration non-destructively. Add a new ioctl for this, making it unprivileged. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Diffstat (limited to 'net')
-rw-r--r--net/core/dev_ioctl.c2
-rw-r--r--net/socket.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
index 5b7d0e1d0664..cf999e09bcd2 100644
--- a/net/core/dev_ioctl.c
+++ b/net/core/dev_ioctl.c
@@ -327,6 +327,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd)
327 cmd == SIOCBRADDIF || 327 cmd == SIOCBRADDIF ||
328 cmd == SIOCBRDELIF || 328 cmd == SIOCBRDELIF ||
329 cmd == SIOCSHWTSTAMP || 329 cmd == SIOCSHWTSTAMP ||
330 cmd == SIOCGHWTSTAMP ||
330 cmd == SIOCWANDEV) { 331 cmd == SIOCWANDEV) {
331 err = -EOPNOTSUPP; 332 err = -EOPNOTSUPP;
332 if (ops->ndo_do_ioctl) { 333 if (ops->ndo_do_ioctl) {
@@ -546,6 +547,7 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)
546 */ 547 */
547 default: 548 default:
548 if (cmd == SIOCWANDEV || 549 if (cmd == SIOCWANDEV ||
550 cmd == SIOCGHWTSTAMP ||
549 (cmd >= SIOCDEVPRIVATE && 551 (cmd >= SIOCDEVPRIVATE &&
550 cmd <= SIOCDEVPRIVATE + 15)) { 552 cmd <= SIOCDEVPRIVATE + 15)) {
551 dev_load(net, ifr.ifr_name); 553 dev_load(net, ifr.ifr_name);
diff --git a/net/socket.c b/net/socket.c
index 7a766ab83ca5..1a548b70ef3a 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -3231,6 +3231,7 @@ static int compat_sock_ioctl_trans(struct file *file, struct socket *sock,
3231 case SIOCBONDSLAVEINFOQUERY: 3231 case SIOCBONDSLAVEINFOQUERY:
3232 case SIOCBONDINFOQUERY: 3232 case SIOCBONDINFOQUERY:
3233 case SIOCSHWTSTAMP: 3233 case SIOCSHWTSTAMP:
3234 case SIOCGHWTSTAMP:
3234 return compat_ifr_data_ioctl(net, cmd, argp); 3235 return compat_ifr_data_ioctl(net, cmd, argp);
3235 3236
3236 case FIOSETOWN: 3237 case FIOSETOWN: