git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git]
/
drivers
/
net
/
eql.c
diff --git
a/drivers/net/eql.c
b/drivers/net/eql.c
index
0ee18be
..
a53574b
100644
(file)
--- a/
drivers/net/eql.c
+++ b/
drivers/net/eql.c
@@
-255,14
+255,14
@@
static int eql_close(struct net_device *dev)
return 0;
}
return 0;
}
-static int eql_enslave(struct net_device *dev, slaving_request_t *srq);
-static int eql_emancipate(struct net_device *dev, slaving_request_t *srq);
+static int eql_enslave(struct net_device *dev, slaving_request_t
__user
*srq);
+static int eql_emancipate(struct net_device *dev, slaving_request_t
__user
*srq);
-static int eql_g_slave_cfg(struct net_device *dev, slave_config_t *sc);
-static int eql_s_slave_cfg(struct net_device *dev, slave_config_t *sc);
+static int eql_g_slave_cfg(struct net_device *dev, slave_config_t
__user
*sc);
+static int eql_s_slave_cfg(struct net_device *dev, slave_config_t
__user
*sc);
-static int eql_g_master_cfg(struct net_device *dev, master_config_t *mc);
-static int eql_s_master_cfg(struct net_device *dev, master_config_t *mc);
+static int eql_g_master_cfg(struct net_device *dev, master_config_t
__user
*mc);
+static int eql_s_master_cfg(struct net_device *dev, master_config_t
__user
*mc);
static int eql_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{
static int eql_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{
@@
-272,23
+272,17
@@
static int eql_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
switch (cmd) {
case EQL_ENSLAVE:
switch (cmd) {
case EQL_ENSLAVE:
- return eql_enslave(dev,
- (slaving_request_t *) ifr->ifr_data);
+ return eql_enslave(dev, ifr->ifr_data);
case EQL_EMANCIPATE:
case EQL_EMANCIPATE:
- return eql_emancipate(dev,
- (slaving_request_t *) ifr->ifr_data);
+ return eql_emancipate(dev, ifr->ifr_data);
case EQL_GETSLAVECFG:
case EQL_GETSLAVECFG:
- return eql_g_slave_cfg(dev,
- (slave_config_t *) ifr->ifr_data);
+ return eql_g_slave_cfg(dev, ifr->ifr_data);
case EQL_SETSLAVECFG:
case EQL_SETSLAVECFG:
- return eql_s_slave_cfg(dev,
- (slave_config_t *) ifr->ifr_data);
+ return eql_s_slave_cfg(dev, ifr->ifr_data);
case EQL_GETMASTRCFG:
case EQL_GETMASTRCFG:
- return eql_g_master_cfg(dev,
- (master_config_t *) ifr->ifr_data);
+ return eql_g_master_cfg(dev, ifr->ifr_data);
case EQL_SETMASTRCFG:
case EQL_SETMASTRCFG:
- return eql_s_master_cfg(dev,
- (master_config_t *) ifr->ifr_data);
+ return eql_s_master_cfg(dev, ifr->ifr_data);
default:
return -EOPNOTSUPP;
};
default:
return -EOPNOTSUPP;
};
@@
-395,7
+389,7
@@
static inline int eql_is_full(slave_queue_t *queue)
static int __eql_insert_slave(slave_queue_t *queue, slave_t *slave)
{
if (!eql_is_full(queue)) {
static int __eql_insert_slave(slave_queue_t *queue, slave_t *slave)
{
if (!eql_is_full(queue)) {
- slave_t *duplicate_slave =
0
;
+ slave_t *duplicate_slave =
NULL
;
duplicate_slave = __eql_find_slave_dev(queue, slave->dev);
if (duplicate_slave != 0)
duplicate_slave = __eql_find_slave_dev(queue, slave->dev);
if (duplicate_slave != 0)
@@
-411,7
+405,7
@@
static int __eql_insert_slave(slave_queue_t *queue, slave_t *slave)
return -ENOSPC;
}
return -ENOSPC;
}
-static int eql_enslave(struct net_device *master_dev, slaving_request_t *srqp)
+static int eql_enslave(struct net_device *master_dev, slaving_request_t
__user
*srqp)
{
struct net_device *slave_dev;
slaving_request_t srq;
{
struct net_device *slave_dev;
slaving_request_t srq;
@@
-457,7
+451,7
@@
static int eql_enslave(struct net_device *master_dev, slaving_request_t *srqp)
return -EINVAL;
}
return -EINVAL;
}
-static int eql_emancipate(struct net_device *master_dev, slaving_request_t *srqp)
+static int eql_emancipate(struct net_device *master_dev, slaving_request_t
__user
*srqp)
{
equalizer_t *eql = master_dev->priv;
struct net_device *slave_dev;
{
equalizer_t *eql = master_dev->priv;
struct net_device *slave_dev;
@@
-489,7
+483,7
@@
static int eql_emancipate(struct net_device *master_dev, slaving_request_t *srqp
return ret;
}
return ret;
}
-static int eql_g_slave_cfg(struct net_device *dev, slave_config_t *scp)
+static int eql_g_slave_cfg(struct net_device *dev, slave_config_t
__user
*scp)
{
equalizer_t *eql = dev->priv;
slave_t *slave;
{
equalizer_t *eql = dev->priv;
slave_t *slave;
@@
-501,8
+495,12
@@
static int eql_g_slave_cfg(struct net_device *dev, slave_config_t *scp)
return -EFAULT;
slave_dev = dev_get_by_name(sc.slave_name);
return -EFAULT;
slave_dev = dev_get_by_name(sc.slave_name);
+ if (!slave_dev)
+ return -ENODEV;
ret = -EINVAL;
ret = -EINVAL;
+ if (!slave_dev)
+ return ret;
spin_lock_bh(&eql->queue.lock);
if (eql_is_slave(slave_dev)) {
spin_lock_bh(&eql->queue.lock);
if (eql_is_slave(slave_dev)) {
@@
-522,7
+520,7
@@
static int eql_g_slave_cfg(struct net_device *dev, slave_config_t *scp)
return ret;
}
return ret;
}
-static int eql_s_slave_cfg(struct net_device *dev, slave_config_t *scp)
+static int eql_s_slave_cfg(struct net_device *dev, slave_config_t
__user
*scp)
{
slave_t *slave;
equalizer_t *eql;
{
slave_t *slave;
equalizer_t *eql;
@@
-533,11
+531,15
@@
static int eql_s_slave_cfg(struct net_device *dev, slave_config_t *scp)
if (copy_from_user(&sc, scp, sizeof (slave_config_t)))
return -EFAULT;
if (copy_from_user(&sc, scp, sizeof (slave_config_t)))
return -EFAULT;
- eql = dev->priv;
slave_dev = dev_get_by_name(sc.slave_name);
slave_dev = dev_get_by_name(sc.slave_name);
+ if (!slave_dev)
+ return -ENODEV;
ret = -EINVAL;
ret = -EINVAL;
+ if (!slave_dev)
+ return ret;
+ eql = dev->priv;
spin_lock_bh(&eql->queue.lock);
if (eql_is_slave(slave_dev)) {
slave = __eql_find_slave_dev(&eql->queue, slave_dev);
spin_lock_bh(&eql->queue.lock);
if (eql_is_slave(slave_dev)) {
slave = __eql_find_slave_dev(&eql->queue, slave_dev);
@@
-553,7
+555,7
@@
static int eql_s_slave_cfg(struct net_device *dev, slave_config_t *scp)
return ret;
}
return ret;
}
-static int eql_g_master_cfg(struct net_device *dev, master_config_t *mcp)
+static int eql_g_master_cfg(struct net_device *dev, master_config_t
__user
*mcp)
{
equalizer_t *eql;
master_config_t mc;
{
equalizer_t *eql;
master_config_t mc;
@@
-569,7
+571,7
@@
static int eql_g_master_cfg(struct net_device *dev, master_config_t *mcp)
return -EINVAL;
}
return -EINVAL;
}
-static int eql_s_master_cfg(struct net_device *dev, master_config_t *mcp)
+static int eql_s_master_cfg(struct net_device *dev, master_config_t
__user
*mcp)
{
equalizer_t *eql;
master_config_t mc;
{
equalizer_t *eql;
master_config_t mc;