diff options
author | David S. Miller <davem@davemloft.net> | 2014-12-10 13:17:23 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-12-10 13:17:23 -0500 |
commit | 6e5f59aacbf9527dfe425541c78cb8c56623e7eb (patch) | |
tree | dc5614e1546dba2bd6896d4aa21410e1d3297a09 /net/bluetooth | |
parent | 6c702fab626328c33b539b0c618a5511aed23bed (diff) | |
parent | 218321e7a0838c2be974539f0a5341b398d4432b (diff) |
Merge branch 'for-davem-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
More iov_iter work for the networking from Al Viro.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/6lowpan.c | 7 | ||||
-rw-r--r-- | net/bluetooth/a2mp.c | 4 | ||||
-rw-r--r-- | net/bluetooth/l2cap_core.c | 7 | ||||
-rw-r--r-- | net/bluetooth/l2cap_sock.c | 8 | ||||
-rw-r--r-- | net/bluetooth/smp.c | 5 |
5 files changed, 8 insertions, 23 deletions
diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c index bdcaefd2db12..76617be1e797 100644 --- a/net/bluetooth/6lowpan.c +++ b/net/bluetooth/6lowpan.c | |||
@@ -537,12 +537,12 @@ static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb, | |||
537 | */ | 537 | */ |
538 | chan->data = skb; | 538 | chan->data = skb; |
539 | 539 | ||
540 | memset(&msg, 0, sizeof(msg)); | ||
541 | msg.msg_iov = (struct iovec *) &iv; | ||
542 | msg.msg_iovlen = 1; | ||
543 | iv.iov_base = skb->data; | 540 | iv.iov_base = skb->data; |
544 | iv.iov_len = skb->len; | 541 | iv.iov_len = skb->len; |
545 | 542 | ||
543 | memset(&msg, 0, sizeof(msg)); | ||
544 | iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, &iv, 1, skb->len); | ||
545 | |||
546 | err = l2cap_chan_send(chan, &msg, skb->len); | 546 | err = l2cap_chan_send(chan, &msg, skb->len); |
547 | if (err > 0) { | 547 | if (err > 0) { |
548 | netdev->stats.tx_bytes += err; | 548 | netdev->stats.tx_bytes += err; |
@@ -1050,7 +1050,6 @@ static const struct l2cap_ops bt_6lowpan_chan_ops = { | |||
1050 | .suspend = chan_suspend_cb, | 1050 | .suspend = chan_suspend_cb, |
1051 | .get_sndtimeo = chan_get_sndtimeo_cb, | 1051 | .get_sndtimeo = chan_get_sndtimeo_cb, |
1052 | .alloc_skb = chan_alloc_skb_cb, | 1052 | .alloc_skb = chan_alloc_skb_cb, |
1053 | .memcpy_fromiovec = l2cap_chan_no_memcpy_fromiovec, | ||
1054 | 1053 | ||
1055 | .teardown = l2cap_chan_no_teardown, | 1054 | .teardown = l2cap_chan_no_teardown, |
1056 | .defer = l2cap_chan_no_defer, | 1055 | .defer = l2cap_chan_no_defer, |
diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c index 5dcade511fdb..cedfbda15dad 100644 --- a/net/bluetooth/a2mp.c +++ b/net/bluetooth/a2mp.c | |||
@@ -60,8 +60,7 @@ void a2mp_send(struct amp_mgr *mgr, u8 code, u8 ident, u16 len, void *data) | |||
60 | 60 | ||
61 | memset(&msg, 0, sizeof(msg)); | 61 | memset(&msg, 0, sizeof(msg)); |
62 | 62 | ||
63 | msg.msg_iov = (struct iovec *) &iv; | 63 | iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, &iv, 1, total_len); |
64 | msg.msg_iovlen = 1; | ||
65 | 64 | ||
66 | l2cap_chan_send(chan, &msg, total_len); | 65 | l2cap_chan_send(chan, &msg, total_len); |
67 | 66 | ||
@@ -720,7 +719,6 @@ static const struct l2cap_ops a2mp_chan_ops = { | |||
720 | .resume = l2cap_chan_no_resume, | 719 | .resume = l2cap_chan_no_resume, |
721 | .set_shutdown = l2cap_chan_no_set_shutdown, | 720 | .set_shutdown = l2cap_chan_no_set_shutdown, |
722 | .get_sndtimeo = l2cap_chan_no_get_sndtimeo, | 721 | .get_sndtimeo = l2cap_chan_no_get_sndtimeo, |
723 | .memcpy_fromiovec = l2cap_chan_no_memcpy_fromiovec, | ||
724 | }; | 722 | }; |
725 | 723 | ||
726 | static struct l2cap_chan *a2mp_chan_open(struct l2cap_conn *conn, bool locked) | 724 | static struct l2cap_chan *a2mp_chan_open(struct l2cap_conn *conn, bool locked) |
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index a8da7ea9c2c0..a2b6dfa38a0c 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c | |||
@@ -2103,8 +2103,7 @@ static inline int l2cap_skbuff_fromiovec(struct l2cap_chan *chan, | |||
2103 | struct sk_buff **frag; | 2103 | struct sk_buff **frag; |
2104 | int sent = 0; | 2104 | int sent = 0; |
2105 | 2105 | ||
2106 | if (chan->ops->memcpy_fromiovec(chan, skb_put(skb, count), | 2106 | if (copy_from_iter(skb_put(skb, count), count, &msg->msg_iter) != count) |
2107 | msg->msg_iov, count)) | ||
2108 | return -EFAULT; | 2107 | return -EFAULT; |
2109 | 2108 | ||
2110 | sent += count; | 2109 | sent += count; |
@@ -2124,8 +2123,8 @@ static inline int l2cap_skbuff_fromiovec(struct l2cap_chan *chan, | |||
2124 | 2123 | ||
2125 | *frag = tmp; | 2124 | *frag = tmp; |
2126 | 2125 | ||
2127 | if (chan->ops->memcpy_fromiovec(chan, skb_put(*frag, count), | 2126 | if (copy_from_iter(skb_put(*frag, count), count, |
2128 | msg->msg_iov, count)) | 2127 | &msg->msg_iter) != count) |
2129 | return -EFAULT; | 2128 | return -EFAULT; |
2130 | 2129 | ||
2131 | sent += count; | 2130 | sent += count; |
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c index b0efb7202957..f65caf41953f 100644 --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c | |||
@@ -1336,13 +1336,6 @@ static struct sk_buff *l2cap_sock_alloc_skb_cb(struct l2cap_chan *chan, | |||
1336 | return skb; | 1336 | return skb; |
1337 | } | 1337 | } |
1338 | 1338 | ||
1339 | static int l2cap_sock_memcpy_fromiovec_cb(struct l2cap_chan *chan, | ||
1340 | unsigned char *kdata, | ||
1341 | struct iovec *iov, int len) | ||
1342 | { | ||
1343 | return memcpy_fromiovec(kdata, iov, len); | ||
1344 | } | ||
1345 | |||
1346 | static void l2cap_sock_ready_cb(struct l2cap_chan *chan) | 1339 | static void l2cap_sock_ready_cb(struct l2cap_chan *chan) |
1347 | { | 1340 | { |
1348 | struct sock *sk = chan->data; | 1341 | struct sock *sk = chan->data; |
@@ -1427,7 +1420,6 @@ static const struct l2cap_ops l2cap_chan_ops = { | |||
1427 | .set_shutdown = l2cap_sock_set_shutdown_cb, | 1420 | .set_shutdown = l2cap_sock_set_shutdown_cb, |
1428 | .get_sndtimeo = l2cap_sock_get_sndtimeo_cb, | 1421 | .get_sndtimeo = l2cap_sock_get_sndtimeo_cb, |
1429 | .alloc_skb = l2cap_sock_alloc_skb_cb, | 1422 | .alloc_skb = l2cap_sock_alloc_skb_cb, |
1430 | .memcpy_fromiovec = l2cap_sock_memcpy_fromiovec_cb, | ||
1431 | }; | 1423 | }; |
1432 | 1424 | ||
1433 | static void l2cap_sock_destruct(struct sock *sk) | 1425 | static void l2cap_sock_destruct(struct sock *sk) |
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c index 96bf16dcd9e9..6a46252fe66f 100644 --- a/net/bluetooth/smp.c +++ b/net/bluetooth/smp.c | |||
@@ -539,8 +539,7 @@ static void smp_send_cmd(struct l2cap_conn *conn, u8 code, u16 len, void *data) | |||
539 | 539 | ||
540 | memset(&msg, 0, sizeof(msg)); | 540 | memset(&msg, 0, sizeof(msg)); |
541 | 541 | ||
542 | msg.msg_iov = (struct iovec *) &iv; | 542 | iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, iv, 2, 1 + len); |
543 | msg.msg_iovlen = 2; | ||
544 | 543 | ||
545 | l2cap_chan_send(chan, &msg, 1 + len); | 544 | l2cap_chan_send(chan, &msg, 1 + len); |
546 | 545 | ||
@@ -2865,7 +2864,6 @@ static const struct l2cap_ops smp_chan_ops = { | |||
2865 | .suspend = l2cap_chan_no_suspend, | 2864 | .suspend = l2cap_chan_no_suspend, |
2866 | .set_shutdown = l2cap_chan_no_set_shutdown, | 2865 | .set_shutdown = l2cap_chan_no_set_shutdown, |
2867 | .get_sndtimeo = l2cap_chan_no_get_sndtimeo, | 2866 | .get_sndtimeo = l2cap_chan_no_get_sndtimeo, |
2868 | .memcpy_fromiovec = l2cap_chan_no_memcpy_fromiovec, | ||
2869 | }; | 2867 | }; |
2870 | 2868 | ||
2871 | static inline struct l2cap_chan *smp_new_conn_cb(struct l2cap_chan *pchan) | 2869 | static inline struct l2cap_chan *smp_new_conn_cb(struct l2cap_chan *pchan) |
@@ -2914,7 +2912,6 @@ static const struct l2cap_ops smp_root_chan_ops = { | |||
2914 | .resume = l2cap_chan_no_resume, | 2912 | .resume = l2cap_chan_no_resume, |
2915 | .set_shutdown = l2cap_chan_no_set_shutdown, | 2913 | .set_shutdown = l2cap_chan_no_set_shutdown, |
2916 | .get_sndtimeo = l2cap_chan_no_get_sndtimeo, | 2914 | .get_sndtimeo = l2cap_chan_no_get_sndtimeo, |
2917 | .memcpy_fromiovec = l2cap_chan_no_memcpy_fromiovec, | ||
2918 | }; | 2915 | }; |
2919 | 2916 | ||
2920 | static struct l2cap_chan *smp_add_cid(struct hci_dev *hdev, u16 cid) | 2917 | static struct l2cap_chan *smp_add_cid(struct hci_dev *hdev, u16 cid) |