• Jiri Wiesner's avatar
    ibmvnic: always store valid MAC address · 67eb2114
    Jiri Wiesner authored
    The last change to ibmvnic_set_mac(), 8fc3672a, meant to prevent
    users from setting an invalid MAC address on an ibmvnic interface
    that has not been brought up yet. The change also prevented the
    requested MAC address from being stored by the adapter object for an
    ibmvnic interface when the state of the ibmvnic interface is
    VNIC_PROBED - that is after probing has finished but before the
    ibmvnic interface is brought up. The MAC address stored by the
    adapter object is used and sent to the hypervisor for checking when
    an ibmvnic interface is brought up.
    
    The ibmvnic driver ignoring the requested MAC address when in
    VNIC_PROBED state caused LACP bonds (bonds in 802.3ad mode) with more
    than one slave to malfunction. The bonding code must be able to
    change the MAC address of its slaves before they are brought up
    during enslaving. The inability of kernels with 8fc3672a to set
    the MAC addresses of bonding slaves is observable in the output of
    "ip address show". The MAC addresses of the slaves are the same as
    the MAC address of the bond on a working system whereas the slaves
    retain their original MAC addresses on a system with a malfunctioning
    LACP bond.
    
    Fixes: 8fc3672a
    
     ("ibmvnic: fix ibmvnic_set_mac")
    Signed-off-by: default avatarJiri Wiesner <jwiesner@suse.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    67eb2114
ibmvnic.c 150 KB