diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-11-24 10:42:55 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-12-09 16:29:03 -0500 |
commit | c0371da6047abd261bc483c744dbc7d81a116172 (patch) | |
tree | 73b4d685f311a83e04f3a684ce18225b409b3f5f /net/packet/af_packet.c | |
parent | d838df2e5dcbb6ed4d82854869e9a30f9aeef6da (diff) |
put iov_iter into msghdr
Note that the code _using_ ->msg_iter at that point will be very
unhappy with anything other than unshifted iovec-backed iov_iter.
We still need to convert users to proper primitives.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'net/packet/af_packet.c')
-rw-r--r-- | net/packet/af_packet.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index efa844501136..ed2e620b61df 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
@@ -2408,11 +2408,8 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len) | |||
2408 | unsigned short gso_type = 0; | 2408 | unsigned short gso_type = 0; |
2409 | int hlen, tlen; | 2409 | int hlen, tlen; |
2410 | int extra_len = 0; | 2410 | int extra_len = 0; |
2411 | struct iov_iter from; | ||
2412 | ssize_t n; | 2411 | ssize_t n; |
2413 | 2412 | ||
2414 | iov_iter_init(&from, WRITE, msg->msg_iov, msg->msg_iovlen, len); | ||
2415 | |||
2416 | /* | 2413 | /* |
2417 | * Get and verify the address. | 2414 | * Get and verify the address. |
2418 | */ | 2415 | */ |
@@ -2451,7 +2448,7 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len) | |||
2451 | len -= vnet_hdr_len; | 2448 | len -= vnet_hdr_len; |
2452 | 2449 | ||
2453 | err = -EFAULT; | 2450 | err = -EFAULT; |
2454 | n = copy_from_iter(&vnet_hdr, vnet_hdr_len, &from); | 2451 | n = copy_from_iter(&vnet_hdr, vnet_hdr_len, &msg->msg_iter); |
2455 | if (n != vnet_hdr_len) | 2452 | if (n != vnet_hdr_len) |
2456 | goto out_unlock; | 2453 | goto out_unlock; |
2457 | 2454 | ||
@@ -2522,7 +2519,7 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len) | |||
2522 | } | 2519 | } |
2523 | 2520 | ||
2524 | /* Returns -EFAULT on error */ | 2521 | /* Returns -EFAULT on error */ |
2525 | err = skb_copy_datagram_from_iter(skb, offset, &from, len); | 2522 | err = skb_copy_datagram_from_iter(skb, offset, &msg->msg_iter, len); |
2526 | if (err) | 2523 | if (err) |
2527 | goto out_free; | 2524 | goto out_free; |
2528 | 2525 | ||