summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSoheil Hassas Yeganeh <soheil@google.com>2016-07-20 18:01:18 -0400
committerDavid S. Miller <davem@davemloft.net>2016-07-22 01:41:48 -0400
commitf8e7718cc0445587fe8530fc2d240d9aac2c9072 (patch)
tree26133ea508e6001b91adef1482973c8b528927a5
parent882b0f2fba83374149f0a5869d95aa8b44dad31e (diff)
downloadlinux-f8e7718cc0445587fe8530fc2d240d9aac2c9072.tar.gz
linux-f8e7718cc0445587fe8530fc2d240d9aac2c9072.tar.xz
packet: propagate sock_cmsg_send() error
sock_cmsg_send() can return different error codes and not only -EINVAL, and we should properly propagate them. Fixes: c14ac9451c34 ("sock: enable timestamping using control messages") Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com> Cc: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/packet/af_packet.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 53e87ce..b43c401 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -1930,10 +1930,8 @@ retry:
sockc.tsflags = sk->sk_tsflags;
if (msg->msg_controllen) {
err = sock_cmsg_send(sk, msg, &sockc);
- if (unlikely(err)) {
- err = -EINVAL;
+ if (unlikely(err))
goto out_unlock;
- }
}
skb->protocol = proto;