wilc_get_mac_address(vif, mac_add);
        netdev_dbg(ndev, "Mac address: %pM\n", mac_add);
-       memcpy(vif->src_addr, mac_add, ETH_ALEN);
-       memcpy(ndev->dev_addr, vif->src_addr, ETH_ALEN);
+       ether_addr_copy(ndev->dev_addr, mac_add);
 
        if (!is_valid_ether_addr(ndev->dev_addr)) {
                netdev_err(ndev, "Wrong MAC address\n");
 
        if (ret != 0)
                netdev_err(dev, "Error in setting channel\n");
 
-       wilc_wlan_set_bssid(dev, vif->src_addr, WILC_AP_MODE);
+       wilc_wlan_set_bssid(dev, dev->dev_addr, WILC_AP_MODE);
        wilc_set_power_mgmt(vif, 0, 0);
 
        return wilc_add_beacon(vif, settings->beacon_interval,