diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 53e87ceb26e7ff17e186a7f20d4c5373afa8e094..b43c4015b2f79678bb5a2edffdd4e57cf9bdb880 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -1930,10 +1930,8 @@ static int packet_sendmsg_spkt(struct socket *sock, struct msghdr *msg,
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;