|
@@ -1317,7 +1317,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
|
|
|
break;
|
|
|
|
|
|
case SIOCDEVRESINSTATS :
|
|
|
- if( current->euid != 0 ) /* root only */
|
|
|
+ if (!capable(CAP_NET_ADMIN))
|
|
|
return -EPERM;
|
|
|
memset( &nl->in_stats, 0, sizeof(struct sbni_in_stats) );
|
|
|
break;
|
|
@@ -1334,7 +1334,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
|
|
|
break;
|
|
|
|
|
|
case SIOCDEVSHWSTATE :
|
|
|
- if( current->euid != 0 ) /* root only */
|
|
|
+ if (!capable(CAP_NET_ADMIN))
|
|
|
return -EPERM;
|
|
|
|
|
|
spin_lock( &nl->lock );
|
|
@@ -1355,7 +1355,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
|
|
|
#ifdef CONFIG_SBNI_MULTILINE
|
|
|
|
|
|
case SIOCDEVENSLAVE :
|
|
|
- if( current->euid != 0 ) /* root only */
|
|
|
+ if (!capable(CAP_NET_ADMIN))
|
|
|
return -EPERM;
|
|
|
|
|
|
if (copy_from_user( slave_name, ifr->ifr_data, sizeof slave_name ))
|
|
@@ -1370,7 +1370,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
|
|
|
return enslave( dev, slave_dev );
|
|
|
|
|
|
case SIOCDEVEMANSIPATE :
|
|
|
- if( current->euid != 0 ) /* root only */
|
|
|
+ if (!capable(CAP_NET_ADMIN))
|
|
|
return -EPERM;
|
|
|
|
|
|
return emancipate( dev );
|