struct batadv_priv *bat_priv = netdev_priv(soft_iface);
        struct batadv_hard_iface *primary_if = NULL;
        struct batadv_bcast_packet *bcast_packet;
-       __be16 ethertype = htons(ETH_P_BATMAN);
        static const u8 stp_addr[ETH_ALEN] = {0x01, 0x80, 0xC2, 0x00,
                                              0x00, 0x00};
        static const u8 ectp_addr[ETH_ALEN] = {0xCF, 0x00, 0x00, 0x00,
        case ETH_P_8021Q:
                vhdr = vlan_eth_hdr(skb);
 
-               if (vhdr->h_vlan_encapsulated_proto != ethertype) {
+               /* drop batman-in-batman packets to prevent loops */
+               if (vhdr->h_vlan_encapsulated_proto != htons(ETH_P_BATMAN)) {
                        network_offset += VLAN_HLEN;
                        break;
                }
 {
        struct batadv_bcast_packet *batadv_bcast_packet;
        struct batadv_priv *bat_priv = netdev_priv(soft_iface);
-       __be16 ethertype = htons(ETH_P_BATMAN);
        struct vlan_ethhdr *vhdr;
        struct ethhdr *ethhdr;
        unsigned short vid;
 
                vhdr = (struct vlan_ethhdr *)skb->data;
 
-               if (vhdr->h_vlan_encapsulated_proto != ethertype)
+               /* drop batman-in-batman packets to prevent loops */
+               if (vhdr->h_vlan_encapsulated_proto != htons(ETH_P_BATMAN))
                        break;
 
                /* fall through */