packet: make aligned size of struct tpacket{2,3}_hdr clear
[deliverable/linux.git] / net / packet / af_packet.c
index 24675f06f4fd25203c493b75d3af9a7593ade86a..4fd52181b6ce96b7fc996853046640059739c068 100644 (file)
@@ -1812,6 +1812,13 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
        struct timespec ts;
        __u32 ts_status;
 
+       /* struct tpacket{2,3}_hdr is aligned to a multiple of TPACKET_ALIGNMENT.
+        * We may add members to them until current aligned size without forcing
+        * userspace to call getsockopt(..., PACKET_HDRLEN, ...).
+        */
+       BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
+       BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
+
        if (skb->pkt_type == PACKET_LOOPBACK)
                goto drop;
 
This page took 0.111384 seconds and 5 git commands to generate.