}
        }
 
-       /* don't change skb->dev for link-local packets */
-       if (is_link_local_ether_addr(eth_hdr(skb)->h_dest))
+       /* Link-local multicast packets should be passed to the
+        * stack on the link they arrive as well as pass them to the
+        * bond-master device. These packets are mostly usable when
+        * stack receives it with the link on which they arrive
+        * (e.g. LLDP) they also must be available on master. Some of
+        * the use cases include (but are not limited to): LLDP agents
+        * that must be able to operate both on enslaved interfaces as
+        * well as on bonds themselves; linux bridges that must be able
+        * to process/pass BPDUs from attached bonds when any kind of
+        * STP version is enabled on the network.
+        */
+       if (is_link_local_ether_addr(eth_hdr(skb)->h_dest)) {
+               struct sk_buff *nskb = skb_clone(skb, GFP_ATOMIC);
+
+               if (nskb) {
+                       nskb->dev = bond->dev;
+                       netif_rx(nskb);
+               }
                return RX_HANDLER_PASS;
+       }
        if (bond_should_deliver_exact_match(skb, slave, bond))
                return RX_HANDLER_EXACT;