Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan
This commit is contained in:
@@ -136,7 +136,7 @@ static int ieee802154_dev_ioctl(struct sock *sk, struct ifreq __user *arg,
|
|||||||
unsigned int cmd)
|
unsigned int cmd)
|
||||||
{
|
{
|
||||||
struct ifreq ifr;
|
struct ifreq ifr;
|
||||||
int ret = -EINVAL;
|
int ret = -ENOIOCTLCMD;
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
|
|
||||||
if (copy_from_user(&ifr, arg, sizeof(struct ifreq)))
|
if (copy_from_user(&ifr, arg, sizeof(struct ifreq)))
|
||||||
@@ -146,8 +146,10 @@ static int ieee802154_dev_ioctl(struct sock *sk, struct ifreq __user *arg,
|
|||||||
|
|
||||||
dev_load(sock_net(sk), ifr.ifr_name);
|
dev_load(sock_net(sk), ifr.ifr_name);
|
||||||
dev = dev_get_by_name(sock_net(sk), ifr.ifr_name);
|
dev = dev_get_by_name(sock_net(sk), ifr.ifr_name);
|
||||||
if (dev->type == ARPHRD_IEEE802154 ||
|
|
||||||
dev->type == ARPHRD_IEEE802154_PHY)
|
if ((dev->type == ARPHRD_IEEE802154 ||
|
||||||
|
dev->type == ARPHRD_IEEE802154_PHY) &&
|
||||||
|
dev->netdev_ops->ndo_do_ioctl)
|
||||||
ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd);
|
ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd);
|
||||||
|
|
||||||
if (!ret && copy_to_user(arg, &ifr, sizeof(struct ifreq)))
|
if (!ret && copy_to_user(arg, &ifr, sizeof(struct ifreq)))
|
||||||
|
@@ -377,6 +377,18 @@ int ieee802154_dgram_deliver(struct net_device *dev, struct sk_buff *skb)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int dgram_getsockopt(struct sock *sk, int level, int optname,
|
||||||
|
char __user *optval, int __user *optlen)
|
||||||
|
{
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int dgram_setsockopt(struct sock *sk, int level, int optname,
|
||||||
|
char __user *optval, int __user optlen)
|
||||||
|
{
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
}
|
||||||
|
|
||||||
struct proto ieee802154_dgram_prot = {
|
struct proto ieee802154_dgram_prot = {
|
||||||
.name = "IEEE-802.15.4-MAC",
|
.name = "IEEE-802.15.4-MAC",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
@@ -391,5 +403,7 @@ struct proto ieee802154_dgram_prot = {
|
|||||||
.connect = dgram_connect,
|
.connect = dgram_connect,
|
||||||
.disconnect = dgram_disconnect,
|
.disconnect = dgram_disconnect,
|
||||||
.ioctl = dgram_ioctl,
|
.ioctl = dgram_ioctl,
|
||||||
|
.getsockopt = dgram_getsockopt,
|
||||||
|
.setsockopt = dgram_setsockopt,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -238,6 +238,18 @@ void ieee802154_raw_deliver(struct net_device *dev, struct sk_buff *skb)
|
|||||||
read_unlock(&raw_lock);
|
read_unlock(&raw_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int raw_getsockopt(struct sock *sk, int level, int optname,
|
||||||
|
char __user *optval, int __user *optlen)
|
||||||
|
{
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int raw_setsockopt(struct sock *sk, int level, int optname,
|
||||||
|
char __user *optval, int __user optlen)
|
||||||
|
{
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
}
|
||||||
|
|
||||||
struct proto ieee802154_raw_prot = {
|
struct proto ieee802154_raw_prot = {
|
||||||
.name = "IEEE-802.15.4-RAW",
|
.name = "IEEE-802.15.4-RAW",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
@@ -250,5 +262,7 @@ struct proto ieee802154_raw_prot = {
|
|||||||
.unhash = raw_unhash,
|
.unhash = raw_unhash,
|
||||||
.connect = raw_connect,
|
.connect = raw_connect,
|
||||||
.disconnect = raw_disconnect,
|
.disconnect = raw_disconnect,
|
||||||
|
.getsockopt = raw_getsockopt,
|
||||||
|
.setsockopt = raw_setsockopt,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user