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]
/
net
/
bluetooth
/
rfcomm
/
core.c
diff --git
a/net/bluetooth/rfcomm/core.c
b/net/bluetooth/rfcomm/core.c
index
a2912da
..
f53a8b0
100644
(file)
--- 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)
{
int rfcomm_dlc_open(struct rfcomm_dlc *d, bdaddr_t *src, bdaddr_t *dst, u8 channel)
{
- mm_segment_t fs;
int r;
rfcomm_lock();
int r;
rfcomm_lock();
- fs = get_fs(); set_fs(KERNEL_DS);
r = __rfcomm_dlc_open(d, src, dst, channel);
r = __rfcomm_dlc_open(d, src, dst, channel);
- set_fs(fs);
rfcomm_unlock();
return r;
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)
{
int rfcomm_dlc_close(struct rfcomm_dlc *d, int err)
{
- mm_segment_t fs;
int r;
rfcomm_lock();
int r;
rfcomm_lock();
- fs = get_fs(); set_fs(KERNEL_DS);
r = __rfcomm_dlc_close(d, err);
r = __rfcomm_dlc_close(d, err);
- set_fs(fs);
rfcomm_unlock();
return r;
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 rfcomm_session *s = NULL;
struct sockaddr_l2 addr;
- struct l2cap_options opts;
struct socket *sock;
struct socket *sock;
-
int size
;
+
struct sock *sk
;
BT_DBG("%s %s", batostr(src), batostr(dst));
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 */
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) {
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;
static int rfcomm_send_frame(struct rfcomm_session *s, u8 *data, int len)
{
struct socket *sock = s->sock;
- struct
io
vec iv = { data, len };
+ struct
k
vec iv = { data, len };
struct msghdr msg;
BT_DBG("session %p len %d", s, len);
memset(&msg, 0, sizeof(msg));
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)
}
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;
static int rfcomm_send_test(struct rfcomm_session *s, int cr, u8 *pattern, int len)
{
struct socket *sock = s->sock;
- struct
io
vec iv[3];
+ struct
k
vec iv[3];
struct msghdr msg;
unsigned char hdr[5], crc[1];
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));
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)
}
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;
static int rfcomm_add_listener(bdaddr_t *ba)
{
struct sockaddr_l2 addr;
- struct l2cap_options opts;
struct socket *sock;
struct socket *sock;
+ struct sock *sk;
struct rfcomm_session *s;
struct rfcomm_session *s;
- int
size,
err = 0;
+ int err = 0;
/* Create socket */
err = rfcomm_l2sock_create(&sock);
/* Create socket */
err = rfcomm_l2sock_create(&sock);
@@
-1772,11
+1760,10
@@
static int rfcomm_add_listener(bdaddr_t *ba)
}
/* Set L2CAP options */
}
/* 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);
/* 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_user_nice(current, -10);
current->flags |= PF_NOFREEZE;
- set_fs(KERNEL_DS);
-
BT_DBG("");
rfcomm_add_listener(BDADDR_ANY);
BT_DBG("");
rfcomm_add_listener(BDADDR_ANY);