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.3
[linux-2.6.git]
/
net
/
netrom
/
af_netrom.c
diff --git
a/net/netrom/af_netrom.c
b/net/netrom/af_netrom.c
index
bb5ac58
..
62ff798
100644
(file)
--- a/
net/netrom/af_netrom.c
+++ b/
net/netrom/af_netrom.c
@@
-10,6
+10,7
@@
*/
#include <linux/config.h>
#include <linux/module.h>
*/
#include <linux/config.h>
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/socket.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/socket.h>
@@
-297,7
+298,7
@@
void nr_destroy_socket(struct sock *sk)
*/
static int nr_setsockopt(struct socket *sock, int level, int optname,
*/
static int nr_setsockopt(struct socket *sock, int level, int optname,
- char *optval, int optlen)
+ char
__user
*optval, int optlen)
{
struct sock *sk = sock->sk;
nr_cb *nr = nr_sk(sk);
{
struct sock *sk = sock->sk;
nr_cb *nr = nr_sk(sk);
@@
-309,7
+310,7
@@
static int nr_setsockopt(struct socket *sock, int level, int optname,
if (optlen < sizeof(int))
return -EINVAL;
if (optlen < sizeof(int))
return -EINVAL;
- if (get_user(opt, (int *)optval))
+ if (get_user(opt, (int
__user
*)optval))
return -EFAULT;
switch (optname) {
return -EFAULT;
switch (optname) {
@@
-349,7
+350,7
@@
static int nr_setsockopt(struct socket *sock, int level, int optname,
}
static int nr_getsockopt(struct socket *sock, int level, int optname,
}
static int nr_getsockopt(struct socket *sock, int level, int optname,
- char
*optval, int
*optlen)
+ char
__user *optval, int __user
*optlen)
{
struct sock *sk = sock->sk;
nr_cb *nr = nr_sk(sk);
{
struct sock *sk = sock->sk;
nr_cb *nr = nr_sk(sk);
@@
-800,7
+801,6
@@
static int nr_accept(struct socket *sock, struct socket *newsock, int flags)
remove_wait_queue(sk->sk_sleep, &wait);
newsk = skb->sk;
remove_wait_queue(sk->sk_sleep, &wait);
newsk = skb->sk;
- newsk->sk_pair = NULL;
newsk->sk_socket = newsock;
newsk->sk_sleep = &newsock->wait;
newsk->sk_socket = newsock;
newsk->sk_sleep = &newsock->wait;
@@
-993,7
+993,6
@@
int nr_rx_frame(struct sk_buff *skb, struct net_device *dev)
nr_make->vl = 0;
nr_make->state = NR_STATE_3;
sk->sk_ack_backlog++;
nr_make->vl = 0;
nr_make->state = NR_STATE_3;
sk->sk_ack_backlog++;
- make->sk_pair = sk;
nr_insert_socket(make);
nr_insert_socket(make);
@@
-1021,7
+1020,7
@@
static int nr_sendmsg(struct kiocb *iocb, struct socket *sock,
unsigned char *asmptr;
int size;
unsigned char *asmptr;
int size;
- if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR))
+ if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR
|MSG_CMSG_COMPAT
))
return -EINVAL;
lock_sock(sk);
return -EINVAL;
lock_sock(sk);
@@
-1176,6
+1175,7
@@
static int nr_recvmsg(struct kiocb *iocb, struct socket *sock,
static int nr_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{
struct sock *sk = sock->sk;
static int nr_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{
struct sock *sk = sock->sk;
+ void __user *argp = (void __user *)arg;
int ret;
lock_sock(sk);
int ret;
lock_sock(sk);
@@
-1186,7
+1186,7
@@
static int nr_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
if (amount < 0)
amount = 0;
release_sock(sk);
if (amount < 0)
amount = 0;
release_sock(sk);
- return put_user(amount, (int
*)arg
);
+ return put_user(amount, (int
__user *)argp
);
}
case TIOCINQ: {
}
case TIOCINQ: {
@@
-1196,13
+1196,13
@@
static int nr_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
if ((skb = skb_peek(&sk->sk_receive_queue)) != NULL)
amount = skb->len;
release_sock(sk);
if ((skb = skb_peek(&sk->sk_receive_queue)) != NULL)
amount = skb->len;
release_sock(sk);
- return put_user(amount, (int
*)arg
);
+ return put_user(amount, (int
__user *)argp
);
}
case SIOCGSTAMP:
ret = -EINVAL;
if (sk != NULL)
}
case SIOCGSTAMP:
ret = -EINVAL;
if (sk != NULL)
- ret = sock_get_timestamp(sk,
(struct timeval *)arg
);
+ ret = sock_get_timestamp(sk,
argp
);
release_sock(sk);
return ret;
release_sock(sk);
return ret;
@@
-1224,11
+1224,11
@@
static int nr_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
case SIOCNRDECOBS:
release_sock(sk);
if (!capable(CAP_NET_ADMIN)) return -EPERM;
case SIOCNRDECOBS:
release_sock(sk);
if (!capable(CAP_NET_ADMIN)) return -EPERM;
- return nr_rt_ioctl(cmd,
(void *)arg
);
+ return nr_rt_ioctl(cmd,
argp
);
default:
release_sock(sk);
default:
release_sock(sk);
- return dev_ioctl(cmd,
(void *)arg
);
+ return dev_ioctl(cmd,
argp
);
}
release_sock(sk);
}
release_sock(sk);
@@
-1450,8
+1450,7
@@
static int __init nr_proto_init(void)
module_init(nr_proto_init);
module_init(nr_proto_init);
-
-MODULE_PARM(nr_ndevs, "i");
+module_param(nr_ndevs, int, 0);
MODULE_PARM_DESC(nr_ndevs, "number of NET/ROM devices");
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
MODULE_PARM_DESC(nr_ndevs, "number of NET/ROM devices");
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");