• Shannon Nelson's avatar
    ionic: don't remove netdev->dev_addr when syncing uc list · 5c976a56
    Shannon Nelson authored
    Bridging, and possibly other upper stack gizmos, adds the
    lower device's netdev->dev_addr to its own uc list, and
    then requests it be deleted when the upper bridge device is
    removed.  This delete request also happens with the bridging
    vlan_filtering is enabled and then disabled.
    
    Bonding has a similar behavior with the uc list, but since it
    also uses set_mac to manage netdev->dev_addr, it doesn't have
    the same the failure case.
    
    Because we store our netdev->dev_addr in our uc list, we need
    to ignore the delete request from dev_uc_sync so as to not
    lose the address and all hope of communicating.  Note that
    ndo_set_mac_address is expressly changing netdev->dev_addr,
    so no limitation is set there.
    
    Fixes: 2a654540 ("ionic: Add Rx filter and rx_mode ndo support")
    Signed-off-by: default avatarShannon Nelson <snelson@pensando.io>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5c976a56
ionic_lif.c 95.6 KB