diff options
author | Alexander Viro <viro@www.linux.org.uk> | 2004-07-26 06:57:53 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-07-26 06:57:53 -0700 |
commit | b5578b5e83e5b7d8401ee832b6142775d2f1f6fa (patch) | |
tree | 1e7461ad31ae3482566450db022e93f641d893be /net | |
parent | eb0296b9e872ca43f1642284b46006a9f2a6c137 (diff) | |
download | history-b5578b5e83e5b7d8401ee832b6142775d2f1f6fa.tar.gz |
[PATCH] bluetooth annotations
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/bluetooth/bnep/bnep.h | 2 | ||||
-rw-r--r-- | net/bluetooth/bnep/core.c | 22 | ||||
-rw-r--r-- | net/bluetooth/cmtp/core.c | 8 | ||||
-rw-r--r-- | net/bluetooth/hidp/core.c | 8 | ||||
-rw-r--r-- | net/bluetooth/rfcomm/core.c | 45 |
5 files changed, 28 insertions, 57 deletions
diff --git a/net/bluetooth/bnep/bnep.h b/net/bluetooth/bnep/bnep.h index 5334a2cc0cb313..bbb1ed7097a942 100644 --- a/net/bluetooth/bnep/bnep.h +++ b/net/bluetooth/bnep/bnep.h @@ -139,7 +139,7 @@ struct bnep_conninfo { struct bnep_connlist_req { __u32 cnum; - struct bnep_conninfo *ci; + struct bnep_conninfo __user *ci; }; struct bnep_proto_filter { diff --git a/net/bluetooth/bnep/core.c b/net/bluetooth/bnep/core.c index ce7b9a51934c6a..5438538f4de540 100644 --- a/net/bluetooth/bnep/core.c +++ b/net/bluetooth/bnep/core.c @@ -99,11 +99,9 @@ static void __bnep_unlink_session(struct bnep_session *s) static int bnep_send(struct bnep_session *s, void *data, size_t len) { struct socket *sock = s->sock; - struct iovec iv = { data, len }; + struct kvec iv = { data, len }; - s->msg.msg_iov = &iv; - s->msg.msg_iovlen = 1; - return sock_sendmsg(sock, &s->msg, len); + return kernel_sendmsg(sock, &s->msg, &iv, 1, len); } static int bnep_send_rsp(struct bnep_session *s, u8 ctrl, u16 resp) @@ -389,7 +387,7 @@ static inline int bnep_tx_frame(struct bnep_session *s, struct sk_buff *skb) { struct ethhdr *eh = (void *) skb->data; struct socket *sock = s->sock; - struct iovec iv[3]; + struct kvec iv[3]; int len = 0, il = 0; u8 type = 0; @@ -400,7 +398,7 @@ static inline int bnep_tx_frame(struct bnep_session *s, struct sk_buff *skb) goto send; } - iv[il++] = (struct iovec) { &type, 1 }; + iv[il++] = (struct kvec) { &type, 1 }; len++; if (!memcmp(eh->h_dest, s->eh.h_source, ETH_ALEN)) @@ -415,25 +413,23 @@ static inline int bnep_tx_frame(struct bnep_session *s, struct sk_buff *skb) type = __bnep_tx_types[type]; switch (type) { case BNEP_COMPRESSED_SRC_ONLY: - iv[il++] = (struct iovec) { eh->h_source, ETH_ALEN }; + iv[il++] = (struct kvec) { eh->h_source, ETH_ALEN }; len += ETH_ALEN; break; case BNEP_COMPRESSED_DST_ONLY: - iv[il++] = (struct iovec) { eh->h_dest, ETH_ALEN }; + iv[il++] = (struct kvec) { eh->h_dest, ETH_ALEN }; len += ETH_ALEN; break; } send: - iv[il++] = (struct iovec) { skb->data, skb->len }; + iv[il++] = (struct kvec) { skb->data, skb->len }; len += skb->len; /* FIXME: linearize skb */ { - s->msg.msg_iov = iv; - s->msg.msg_iovlen = il; - len = sock_sendmsg(sock, &s->msg, len); + len = kernel_sendmsg(sock, &s->msg, iv, il, len); } kfree_skb(skb); @@ -460,8 +456,6 @@ static int bnep_session(void *arg) set_user_nice(current, -15); current->flags |= PF_NOFREEZE; - set_fs(KERNEL_DS); - init_waitqueue_entry(&wait, current); add_wait_queue(sk->sk_sleep, &wait); while (!atomic_read(&s->killed)) { diff --git a/net/bluetooth/cmtp/core.c b/net/bluetooth/cmtp/core.c index 5d3d0dccee07e8..20ce04f2be8baf 100644 --- a/net/bluetooth/cmtp/core.c +++ b/net/bluetooth/cmtp/core.c @@ -201,7 +201,7 @@ static inline int cmtp_recv_frame(struct cmtp_session *session, struct sk_buff * static int cmtp_send_frame(struct cmtp_session *session, unsigned char *data, int len) { struct socket *sock = session->sock; - struct iovec iv = { data, len }; + struct kvec iv = { data, len }; struct msghdr msg; BT_DBG("session %p data %p len %d", session, data, len); @@ -210,10 +210,8 @@ static int cmtp_send_frame(struct cmtp_session *session, unsigned char *data, in return 0; memset(&msg, 0, sizeof(msg)); - msg.msg_iovlen = 1; - msg.msg_iov = &iv; - return sock_sendmsg(sock, &msg, len); + return kernel_sendmsg(sock, &msg, &iv, 1, len); } static int cmtp_process_transmit(struct cmtp_session *session) @@ -295,8 +293,6 @@ static int cmtp_session(void *arg) set_user_nice(current, -15); current->flags |= PF_NOFREEZE; - set_fs(KERNEL_DS); - init_waitqueue_entry(&wait, current); add_wait_queue(sk->sk_sleep, &wait); while (!atomic_read(&session->terminate)) { diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c index 7e8e7ba7b34f4c..ee652ae9c34217 100644 --- a/net/bluetooth/hidp/core.c +++ b/net/bluetooth/hidp/core.c @@ -274,7 +274,7 @@ static inline int hidp_recv_frame(struct hidp_session *session, struct sk_buff * static int hidp_send_frame(struct socket *sock, unsigned char *data, int len) { - struct iovec iv = { data, len }; + struct kvec iv = { data, len }; struct msghdr msg; BT_DBG("sock %p data %p len %d", sock, data, len); @@ -283,10 +283,8 @@ static int hidp_send_frame(struct socket *sock, unsigned char *data, int len) return 0; memset(&msg, 0, sizeof(msg)); - msg.msg_iovlen = 1; - msg.msg_iov = &iv; - return sock_sendmsg(sock, &msg, len); + return kernel_sendmsg(sock, &msg, &iv, 1, len); } static int hidp_process_transmit(struct hidp_session *session) @@ -340,8 +338,6 @@ static int hidp_session(void *arg) set_user_nice(current, -15); current->flags |= PF_NOFREEZE; - set_fs(KERNEL_DS); - init_waitqueue_entry(&ctrl_wait, current); init_waitqueue_entry(&intr_wait, current); add_wait_queue(ctrl_sk->sk_sleep, &ctrl_wait); diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index a2912da9ceda12..f53a8b040ffbb0 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -323,14 +323,11 @@ static int __rfcomm_dlc_open(struct rfcomm_dlc *d, bdaddr_t *src, bdaddr_t *dst, int rfcomm_dlc_open(struct rfcomm_dlc *d, bdaddr_t *src, bdaddr_t *dst, u8 channel) { - mm_segment_t fs; int r; rfcomm_lock(); - fs = get_fs(); set_fs(KERNEL_DS); r = __rfcomm_dlc_open(d, src, dst, channel); - set_fs(fs); rfcomm_unlock(); return r; @@ -376,14 +373,11 @@ static int __rfcomm_dlc_close(struct rfcomm_dlc *d, int err) int rfcomm_dlc_close(struct rfcomm_dlc *d, int err) { - mm_segment_t fs; int r; rfcomm_lock(); - fs = get_fs(); set_fs(KERNEL_DS); r = __rfcomm_dlc_close(d, err); - set_fs(fs); rfcomm_unlock(); return r; @@ -552,9 +546,8 @@ struct rfcomm_session *rfcomm_session_create(bdaddr_t *src, bdaddr_t *dst, int * { struct rfcomm_session *s = NULL; struct sockaddr_l2 addr; - struct l2cap_options opts; struct socket *sock; - int size; + struct sock *sk; BT_DBG("%s %s", batostr(src), batostr(dst)); @@ -570,11 +563,10 @@ struct rfcomm_session *rfcomm_session_create(bdaddr_t *src, bdaddr_t *dst, int * goto failed; /* Set L2CAP options */ - size = sizeof(opts); - sock->ops->getsockopt(sock, SOL_L2CAP, L2CAP_OPTIONS, (void *)&opts, &size); - - opts.imtu = RFCOMM_MAX_L2CAP_MTU; - sock->ops->setsockopt(sock, SOL_L2CAP, L2CAP_OPTIONS, (void *)&opts, size); + sk = sock->sk; + lock_sock(sk); + l2cap_pi(sk)->imtu = RFCOMM_MAX_L2CAP_MTU; + release_sock(sk); s = rfcomm_session_add(sock, BT_BOUND); if (!s) { @@ -612,16 +604,14 @@ void rfcomm_session_getaddr(struct rfcomm_session *s, bdaddr_t *src, bdaddr_t *d static int rfcomm_send_frame(struct rfcomm_session *s, u8 *data, int len) { struct socket *sock = s->sock; - struct iovec iv = { data, len }; + struct kvec iv = { data, len }; struct msghdr msg; BT_DBG("session %p len %d", s, len); memset(&msg, 0, sizeof(msg)); - msg.msg_iovlen = 1; - msg.msg_iov = &iv; - return sock_sendmsg(sock, &msg, len); + return kernel_sendmsg(sock, &msg, &iv, 1, len); } static int rfcomm_send_sabm(struct rfcomm_session *s, u8 dlci) @@ -905,7 +895,7 @@ static int rfcomm_send_fcon(struct rfcomm_session *s, int cr) static int rfcomm_send_test(struct rfcomm_session *s, int cr, u8 *pattern, int len) { struct socket *sock = s->sock; - struct iovec iv[3]; + struct kvec iv[3]; struct msghdr msg; unsigned char hdr[5], crc[1]; @@ -930,10 +920,8 @@ static int rfcomm_send_test(struct rfcomm_session *s, int cr, u8 *pattern, int l iv[2].iov_len = 1; memset(&msg, 0, sizeof(msg)); - msg.msg_iovlen = 3; - msg.msg_iov = iv; - return sock_sendmsg(sock, &msg, 6 + len); + return kernel_sendmsg(sock, &msg, iv, 3, 6 + len); } static int rfcomm_send_credits(struct rfcomm_session *s, u8 addr, u8 credits) @@ -1749,10 +1737,10 @@ static void rfcomm_worker(void) static int rfcomm_add_listener(bdaddr_t *ba) { struct sockaddr_l2 addr; - struct l2cap_options opts; struct socket *sock; + struct sock *sk; struct rfcomm_session *s; - int size, err = 0; + int err = 0; /* Create socket */ err = rfcomm_l2sock_create(&sock); @@ -1772,11 +1760,10 @@ static int rfcomm_add_listener(bdaddr_t *ba) } /* Set L2CAP options */ - size = sizeof(opts); - sock->ops->getsockopt(sock, SOL_L2CAP, L2CAP_OPTIONS, (void *)&opts, &size); - - opts.imtu = RFCOMM_MAX_L2CAP_MTU; - sock->ops->setsockopt(sock, SOL_L2CAP, L2CAP_OPTIONS, (void *)&opts, size); + sk = sock->sk; + lock_sock(sk); + l2cap_pi(sk)->imtu = RFCOMM_MAX_L2CAP_MTU; + release_sock(sk); /* Start listening on the socket */ err = sock->ops->listen(sock, 10); @@ -1820,8 +1807,6 @@ static int rfcomm_run(void *unused) set_user_nice(current, -10); current->flags |= PF_NOFREEZE; - set_fs(KERNEL_DS); - BT_DBG(""); rfcomm_add_listener(BDADDR_ANY); |