330-v4.18-0001-brcmfmac-check-p2pdev-mac-address-uniqueness.patch 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. From cb746e47837ad0f35c8ae28e9aacc8eb07916d2a Mon Sep 17 00:00:00 2001
  2. From: Arend Van Spriel <[email protected]>
  3. Date: Thu, 26 Apr 2018 12:16:47 +0200
  4. Subject: [PATCH] brcmfmac: check p2pdev mac address uniqueness
  5. The mac address for p2pdev must be different from the primary interface
  6. due to firmware requirement. Add an explicit check for this requirement
  7. if user-space provides a mac address.
  8. Reviewed-by: Hante Meuleman <[email protected]>
  9. Reviewed-by: Pieter-Paul Giesberts <[email protected]>
  10. Reviewed-by: Franky Lin <[email protected]>
  11. Signed-off-by: Arend van Spriel <[email protected]>
  12. Signed-off-by: Kalle Valo <[email protected]>
  13. ---
  14. drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 7 +++++++
  15. 1 file changed, 7 insertions(+)
  16. --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
  17. +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
  18. @@ -2073,6 +2073,13 @@ static struct wireless_dev *brcmf_p2p_cr
  19. }
  20. pri_ifp = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif->ifp;
  21. +
  22. + /* firmware requires unique mac address for p2pdev interface */
  23. + if (addr && ether_addr_equal(addr, pri_ifp->mac_addr)) {
  24. + brcmf_err("discovery vif must be different from primary interface\n");
  25. + return ERR_PTR(-EINVAL);
  26. + }
  27. +
  28. brcmf_p2p_generate_bss_mac(p2p, addr);
  29. brcmf_p2p_set_firmware(pri_ifp, p2p->dev_addr);