• Julian Wiedmann's avatar
    s390/qeth: register MAC address earlier · 654e3d48
    Julian Wiedmann authored
    commit 4789a218
    
     ("s390/qeth: fix race when setting MAC address")
    resolved a race where our initial programming of dev_addr into the HW
    and a call to ndo_set_mac_address() could run concurrently. In this
    case, we could end up getting confused about which address was actually
    set in the HW.
    
    The quick fix was to introduce additional locking that blocks any
    ndo_set_mac_address() while the device is being set online. But the race
    primarily originated from the fact that we first register the netdevice,
    and only then program its dev_addr. By re-ordering this sequence,
    userspace will only be able to change the MAC address _after_ we have
    finished with setting the initial dev_addr.
    
    Still, the same MAC address race can also occur during a subsequent call
    to qeth_l2_set_online(). So keep around the locking for now, until a
    follow-up patch fully resolves this.
    Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    654e3d48
qeth_l2_main.c 62.9 KB