af_packet: Use virtio_net_hdr_from_skb() directly.
authorJarno Rajahalme <jarno@ovn.org>
Fri, 18 Nov 2016 23:40:42 +0000 (15:40 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 19 Nov 2016 15:37:03 +0000 (10:37 -0500)
Remove static function __packet_rcv_vnet(), which only called
virtio_net_hdr_from_skb() and BUG()ged out if an error code was
returned.  Instead, call virtio_net_hdr_from_skb() from the former
call sites of __packet_rcv_vnet() and actually use the error handling
code that is already there.

Signed-off-by: Jarno Rajahalme <jarno@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/packet/af_packet.c

index 1816b77e55b57e0e6bcfa20759aee95c85098370..fab9bbfdead5c80965daf3f6309e2b2356aea50e 100644 (file)
@@ -1967,15 +1967,6 @@ static unsigned int run_filter(struct sk_buff *skb,
        return res;
 }
 
-static int __packet_rcv_vnet(const struct sk_buff *skb,
-                            struct virtio_net_hdr *vnet_hdr)
-{
-       if (virtio_net_hdr_from_skb(skb, vnet_hdr, vio_le()))
-               BUG();
-
-       return 0;
-}
-
 static int packet_rcv_vnet(struct msghdr *msg, const struct sk_buff *skb,
                           size_t *len)
 {
@@ -1985,7 +1976,7 @@ static int packet_rcv_vnet(struct msghdr *msg, const struct sk_buff *skb,
                return -EINVAL;
        *len -= sizeof(vnet_hdr);
 
-       if (__packet_rcv_vnet(skb, &vnet_hdr))
+       if (virtio_net_hdr_from_skb(skb, &vnet_hdr, vio_le()))
                return -EINVAL;
 
        return memcpy_to_msg(msg, (void *)&vnet_hdr, sizeof(vnet_hdr));
@@ -2244,8 +2235,9 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
        spin_unlock(&sk->sk_receive_queue.lock);
 
        if (po->has_vnet_hdr) {
-               if (__packet_rcv_vnet(skb, h.raw + macoff -
-                                          sizeof(struct virtio_net_hdr))) {
+               if (virtio_net_hdr_from_skb(skb, h.raw + macoff -
+                                           sizeof(struct virtio_net_hdr),
+                                           vio_le())) {
                        spin_lock(&sk->sk_receive_queue.lock);
                        goto drop_n_account;
                }