if (is_broadcast_ether_addr(ethhdr->h_dest))
                goto free_skb;
 
-       /* packet with broadcast sender address */
-       if (is_broadcast_ether_addr(ethhdr->h_source))
+       /* packet with broadcast/multicast sender address */
+       if (is_multicast_ether_addr(ethhdr->h_source))
                goto free_skb;
 
        /* not for me */
        if (is_broadcast_ether_addr(ethhdr->h_dest))
                return -EBADR;
 
-       /* packet with broadcast sender address */
-       if (is_broadcast_ether_addr(ethhdr->h_source))
+       /* packet with broadcast/multicast sender address */
+       if (is_multicast_ether_addr(ethhdr->h_source))
                return -EBADR;
 
        /* not for me */
        if (!is_broadcast_ether_addr(ethhdr->h_dest))
                goto free_skb;
 
-       /* packet with broadcast sender address */
-       if (is_broadcast_ether_addr(ethhdr->h_source))
+       /* packet with broadcast/multicast sender address */
+       if (is_multicast_ether_addr(ethhdr->h_source))
                goto free_skb;
 
        /* ignore broadcasts sent by myself */