diff --git a/drivers/net/wireless/ath/wil6210/main.c b/drivers/net/wireless/ath/wil6210/main.c index 4ba1495b9aeb..89238bd046e9 100644 --- a/drivers/net/wireless/ath/wil6210/main.c +++ b/drivers/net/wireless/ath/wil6210/main.c @@ -1425,8 +1425,14 @@ static int wil_get_otp_info(struct wil6210_priv *wil) } if (!is_valid_ether_addr(mac)) { - wil_err(wil, "Invalid MAC %pM\n", mac); - return -EINVAL; + u8 dummy_mac[ETH_ALEN] = { + 0x00, 0xde, 0xad, 0x12, 0x34, 0x56, + }; + if (!test_bit(WMI_FW_CAPABILITY_WMI_ONLY, wil->fw_capabilities)) + get_random_bytes(dummy_mac + 3, 3); + wil_err(wil, "Invalid MAC %pM, using random %pM\n", mac, + dummy_mac); + ether_addr_copy(mac, dummy_mac); } ether_addr_copy(ndev->perm_addr, mac);